diff options
| author | kj_sh604 | 2026-03-15 12:56:15 -0400 |
|---|---|---|
| committer | kj_sh604 | 2026-03-15 12:56:15 -0400 |
| commit | 3960458765142f7e1475ed4c662dffe3e73a0255 (patch) | |
| tree | a16a4fe8e9b75d46421e442df37e2a4ba8e0bc7f /src | |
| parent | 737c95d40a2a89f6ff117413aa3a31159e41b7af (diff) | |
refactor: more color palettes and layout changes
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.go | 284 |
1 files changed, 241 insertions, 43 deletions
diff --git a/src/main.go b/src/main.go index f2e85f3..df5ecef 100644 --- a/src/main.go +++ b/src/main.go | |||
| @@ -22,8 +22,8 @@ const ( | |||
| 22 | appTitle = "kjagave" | 22 | appTitle = "kjagave" |
| 23 | appVersion = "20260315-0200" | 23 | appVersion = "20260315-0200" |
| 24 | maxHistoryLen = 250 | 24 | maxHistoryLen = 250 |
| 25 | cardImageW = 150 | 25 | cardImageW = 160 |
| 26 | cardImageH = 98 | 26 | cardImageH = 132 |
| 27 | ) | 27 | ) |
| 28 | 28 | ||
| 29 | type SavedColor struct { | 29 | type SavedColor struct { |
| @@ -43,6 +43,8 @@ type SwatchCard struct { | |||
| 43 | image *gtk.Image | 43 | image *gtk.Image |
| 44 | label *gtk.Label | 44 | label *gtk.Label |
| 45 | hex string | 45 | hex string |
| 46 | rgb string | ||
| 47 | hsv string | ||
| 46 | } | 48 | } |
| 47 | 49 | ||
| 48 | type App struct { | 50 | type App struct { |
| @@ -97,9 +99,18 @@ var schemeNames = []string{ | |||
| 97 | } | 99 | } |
| 98 | 100 | ||
| 99 | var paletteNames = []string{ | 101 | var paletteNames = []string{ |
| 100 | "Web-safe colors", | 102 | "Web-safe (legacy)", |
| 101 | "Tango", | 103 | "Material Design", |
| 102 | "Visibone Core", | 104 | "Tailwind CSS", |
| 105 | "Flat UI", | ||
| 106 | "Pastel", | ||
| 107 | "Nord", | ||
| 108 | "Dracula", | ||
| 109 | "Solarized", | ||
| 110 | "Gruvbox", | ||
| 111 | "One Dark", | ||
| 112 | "Monokai", | ||
| 113 | "KiJiSH Dark Pastel Terminal", | ||
| 103 | } | 114 | } |
| 104 | 115 | ||
| 105 | func main() { | 116 | func main() { |
| @@ -196,11 +207,22 @@ func (app *App) createUI() { | |||
| 196 | 207 | ||
| 197 | root.PackStart(toolbar, false, false, 0) | 208 | root.PackStart(toolbar, false, false, 0) |
| 198 | 209 | ||
| 199 | schemeRow, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 4) | 210 | schemeRow, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 2) |
| 200 | app.swatchCards = make([]SwatchCard, 0, 4) | 211 | app.swatchCards = make([]SwatchCard, 0, 4) |
| 201 | for i := 0; i < 4; i++ { | 212 | for i := 0; i < 4; i++ { |
| 202 | card := app.newSwatchCard() | 213 | card := app.newSwatchCard() |
| 203 | cardIdx := i | 214 | cardIdx := i |
| 215 | card.button.Connect("button-press-event", func(_ *gtk.Button, ev *gdk.Event) bool { | ||
| 216 | if ev == nil { | ||
| 217 | return false | ||
| 218 | } | ||
| 219 | evBtn := gdk.EventButtonNewFromEvent(ev) | ||
| 220 | if evBtn == nil || evBtn.Button() != 3 { | ||
| 221 | return false | ||
| 222 | } | ||
| 223 | app.showSwatchContextMenu(cardIdx, ev) | ||
| 224 | return true | ||
| 225 | }) | ||
| 204 | card.button.Connect("clicked", func() { | 226 | card.button.Connect("clicked", func() { |
| 205 | hex := app.swatchCards[cardIdx].hex | 227 | hex := app.swatchCards[cardIdx].hex |
| 206 | if hex == "" { | 228 | if hex == "" { |
| @@ -271,14 +293,14 @@ func (app *App) createUI() { | |||
| 271 | 293 | ||
| 272 | root.PackStart(controlRow, false, false, 0) | 294 | root.PackStart(controlRow, false, false, 0) |
| 273 | 295 | ||
| 274 | lower, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 6) | 296 | lower, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 4) |
| 275 | 297 | ||
| 276 | paletteFrame, _ := gtk.FrameNew("Palette") | 298 | paletteFrame, _ := gtk.FrameNew("Palette") |
| 277 | paletteBox, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 6) | 299 | paletteBox, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 2) |
| 278 | paletteBox.SetMarginTop(5) | 300 | paletteBox.SetMarginTop(2) |
| 279 | paletteBox.SetMarginBottom(5) | 301 | paletteBox.SetMarginBottom(2) |
| 280 | paletteBox.SetMarginStart(5) | 302 | paletteBox.SetMarginStart(2) |
| 281 | paletteBox.SetMarginEnd(5) | 303 | paletteBox.SetMarginEnd(2) |
| 282 | 304 | ||
| 283 | app.paletteScroll, _ = gtk.ScrolledWindowNew(nil, nil) | 305 | app.paletteScroll, _ = gtk.ScrolledWindowNew(nil, nil) |
| 284 | app.paletteScroll.SetPolicy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) | 306 | app.paletteScroll.SetPolicy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) |
| @@ -303,11 +325,11 @@ func (app *App) createUI() { | |||
| 303 | lower.PackStart(paletteFrame, true, true, 0) | 325 | lower.PackStart(paletteFrame, true, true, 0) |
| 304 | 326 | ||
| 305 | favFrame, _ := gtk.FrameNew("Favorites") | 327 | favFrame, _ := gtk.FrameNew("Favorites") |
| 306 | favBox, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 6) | 328 | favBox, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 2) |
| 307 | favBox.SetMarginTop(5) | 329 | favBox.SetMarginTop(2) |
| 308 | favBox.SetMarginBottom(5) | 330 | favBox.SetMarginBottom(2) |
| 309 | favBox.SetMarginStart(5) | 331 | favBox.SetMarginStart(2) |
| 310 | favBox.SetMarginEnd(5) | 332 | favBox.SetMarginEnd(2) |
| 311 | 333 | ||
| 312 | favScroll, _ := gtk.ScrolledWindowNew(nil, nil) | 334 | favScroll, _ := gtk.ScrolledWindowNew(nil, nil) |
| 313 | favScroll.SetPolicy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) | 335 | favScroll.SetPolicy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) |
| @@ -429,7 +451,7 @@ func (app *App) buildMenuBar() *gtk.MenuBar { | |||
| 429 | 451 | ||
| 430 | func (app *App) initCompactButtonCSS() { | 452 | func (app *App) initCompactButtonCSS() { |
| 431 | app.css, _ = gtk.CssProviderNew() | 453 | app.css, _ = gtk.CssProviderNew() |
| 432 | css := "button { padding: 1px 4px; min-height: 0; min-width: 0; } .palette-swatch { padding: 0; border-width: 0; border-radius: 0; }" | 454 | css := "button { padding: 1px 4px; min-height: 0; min-width: 0; } .palette-swatch { padding: 0; border-width: 0; border-radius: 0; } .swatch-overlay-label { text-shadow: none; }" |
| 433 | _ = app.css.LoadFromData(css) | 455 | _ = app.css.LoadFromData(css) |
| 434 | if screen, err := gdk.ScreenGetDefault(); err == nil && screen != nil { | 456 | if screen, err := gdk.ScreenGetDefault(); err == nil && screen != nil { |
| 435 | gtk.AddProviderForScreen(screen, app.css, gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) | 457 | gtk.AddProviderForScreen(screen, app.css, gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) |
| @@ -441,28 +463,41 @@ func (app *App) setButtonIcon(btn *gtk.Button, iconName string) { | |||
| 441 | if err != nil || img == nil { | 463 | if err != nil || img == nil { |
| 442 | return | 464 | return |
| 443 | } | 465 | } |
| 466 | if label, err := btn.GetLabel(); err == nil && strings.TrimSpace(label) != "" { | ||
| 467 | btn.SetTooltipText(label) | ||
| 468 | btn.SetLabel("") | ||
| 469 | } | ||
| 444 | btn.SetImage(img) | 470 | btn.SetImage(img) |
| 445 | btn.SetAlwaysShowImage(true) | 471 | btn.SetAlwaysShowImage(true) |
| 446 | } | 472 | } |
| 447 | 473 | ||
| 448 | func (app *App) newSwatchCard() SwatchCard { | 474 | func (app *App) newSwatchCard() SwatchCard { |
| 449 | button, _ := gtk.ButtonNew() | 475 | button, _ := gtk.ButtonNew() |
| 450 | button.SetSizeRequest(170, 185) | 476 | button.SetSizeRequest(166, 138) |
| 477 | |||
| 478 | vbox, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 0) | ||
| 479 | vbox.SetMarginTop(1) | ||
| 480 | vbox.SetMarginBottom(1) | ||
| 481 | vbox.SetMarginStart(1) | ||
| 482 | vbox.SetMarginEnd(1) | ||
| 451 | 483 | ||
| 452 | vbox, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 4) | 484 | overlay, _ := gtk.OverlayNew() |
| 453 | vbox.SetMarginTop(4) | 485 | overlay.SetHExpand(true) |
| 454 | vbox.SetMarginBottom(4) | 486 | overlay.SetVExpand(true) |
| 455 | vbox.SetMarginStart(4) | ||
| 456 | vbox.SetMarginEnd(4) | ||
| 457 | 487 | ||
| 458 | image, _ := gtk.ImageNew() | 488 | image, _ := gtk.ImageNew() |
| 459 | image.SetFromPixbuf(solidPixbuf("#000000", cardImageW, cardImageH)) | 489 | image.SetFromPixbuf(solidPixbuf("#000000", cardImageW, cardImageH)) |
| 460 | vbox.PackStart(image, false, false, 0) | 490 | overlay.Add(image) |
| 461 | 491 | ||
| 462 | label, _ := gtk.LabelNew("") | 492 | label, _ := gtk.LabelNew("") |
| 463 | label.SetJustify(gtk.JUSTIFY_CENTER) | 493 | label.SetJustify(gtk.JUSTIFY_CENTER) |
| 464 | label.SetHAlign(gtk.ALIGN_CENTER) | 494 | label.SetHAlign(gtk.ALIGN_CENTER) |
| 465 | vbox.PackStart(label, false, false, 0) | 495 | label.SetVAlign(gtk.ALIGN_CENTER) |
| 496 | if ctx, err := label.GetStyleContext(); err == nil { | ||
| 497 | ctx.AddClass("swatch-overlay-label") | ||
| 498 | } | ||
| 499 | overlay.AddOverlay(label) | ||
| 500 | vbox.PackStart(overlay, true, true, 0) | ||
| 466 | 501 | ||
| 467 | button.Add(vbox) | 502 | button.Add(vbox) |
| 468 | 503 | ||
| @@ -496,6 +531,8 @@ func (app *App) updateSchemePreview() { | |||
| 496 | for i := 0; i < len(app.swatchCards); i++ { | 531 | for i := 0; i < len(app.swatchCards); i++ { |
| 497 | if i >= len(colors) { | 532 | if i >= len(colors) { |
| 498 | app.swatchCards[i].hex = "" | 533 | app.swatchCards[i].hex = "" |
| 534 | app.swatchCards[i].rgb = "" | ||
| 535 | app.swatchCards[i].hsv = "" | ||
| 499 | app.swatchCards[i].button.Hide() | 536 | app.swatchCards[i].button.Hide() |
| 500 | continue | 537 | continue |
| 501 | } | 538 | } |
| @@ -506,10 +543,77 @@ func (app *App) updateSchemePreview() { | |||
| 506 | r := int(math.Round(colors[i].GetRed() * 255)) | 543 | r := int(math.Round(colors[i].GetRed() * 255)) |
| 507 | g := int(math.Round(colors[i].GetGreen() * 255)) | 544 | g := int(math.Round(colors[i].GetGreen() * 255)) |
| 508 | b := int(math.Round(colors[i].GetBlue() * 255)) | 545 | b := int(math.Round(colors[i].GetBlue() * 255)) |
| 546 | textColor := "#F5F5F5" | ||
| 547 | if luminance(colors[i]) > 0.53 { | ||
| 548 | textColor = "#111111" | ||
| 549 | } | ||
| 550 | rgbText := fmt.Sprintf("rgb(%d, %d, %d)", r, g, b) | ||
| 551 | hsvText := fmt.Sprintf("hsv(%d, %d, %d)", int(h), int(s), int(v)) | ||
| 509 | app.swatchCards[i].hex = hex | 552 | app.swatchCards[i].hex = hex |
| 553 | app.swatchCards[i].rgb = rgbText | ||
| 554 | app.swatchCards[i].hsv = hsvText | ||
| 510 | app.swatchCards[i].image.SetFromPixbuf(solidPixbuf(hex, cardImageW, cardImageH)) | 555 | app.swatchCards[i].image.SetFromPixbuf(solidPixbuf(hex, cardImageW, cardImageH)) |
| 511 | app.swatchCards[i].label.SetText(fmt.Sprintf("%s\nrgb(%d, %d, %d)\nhsv(%d, %d, %d)", hex, r, g, b, int(h), int(s), int(v))) | 556 | app.swatchCards[i].label.SetMarkup(fmt.Sprintf("<span foreground=\"%s\" size=\"9000\"><b>%s</b>\n%s\n%s</span>", textColor, hex, rgbText, hsvText)) |
| 557 | } | ||
| 558 | } | ||
| 559 | |||
| 560 | func (app *App) copyTextToClipboard(text string) { | ||
| 561 | if strings.TrimSpace(text) == "" { | ||
| 562 | return | ||
| 563 | } | ||
| 564 | clipboard, _ := gtk.ClipboardGet(gdk.SELECTION_CLIPBOARD) | ||
| 565 | clipboard.SetText(text) | ||
| 566 | } | ||
| 567 | |||
| 568 | func (app *App) showSwatchContextMenu(cardIdx int, ev *gdk.Event) { | ||
| 569 | if cardIdx < 0 || cardIdx >= len(app.swatchCards) { | ||
| 570 | return | ||
| 571 | } | ||
| 572 | card := app.swatchCards[cardIdx] | ||
| 573 | if card.hex == "" { | ||
| 574 | return | ||
| 512 | } | 575 | } |
| 576 | app.showColorContextMenu(card.hex, card.rgb, card.hsv, ev) | ||
| 577 | } | ||
| 578 | |||
| 579 | func (app *App) showColorContextMenu(hex, rgbText, hsvText string, ev *gdk.Event) { | ||
| 580 | if strings.TrimSpace(hex) == "" { | ||
| 581 | return | ||
| 582 | } | ||
| 583 | |||
| 584 | menu, _ := gtk.MenuNew() | ||
| 585 | copyHex, _ := gtk.MenuItemNewWithLabel("Copy HEX") | ||
| 586 | copyHex.Connect("activate", func() { | ||
| 587 | app.copyTextToClipboard(hex) | ||
| 588 | }) | ||
| 589 | menu.Append(copyHex) | ||
| 590 | |||
| 591 | copyHSV, _ := gtk.MenuItemNewWithLabel("Copy HSV") | ||
| 592 | copyHSV.Connect("activate", func() { | ||
| 593 | app.copyTextToClipboard(hsvText) | ||
| 594 | }) | ||
| 595 | menu.Append(copyHSV) | ||
| 596 | |||
| 597 | copyRGB, _ := gtk.MenuItemNewWithLabel("Copy RGB (RGV)") | ||
| 598 | copyRGB.Connect("activate", func() { | ||
| 599 | app.copyTextToClipboard(rgbText) | ||
| 600 | }) | ||
| 601 | menu.Append(copyRGB) | ||
| 602 | |||
| 603 | menu.ShowAll() | ||
| 604 | menu.PopupAtPointer(ev) | ||
| 605 | } | ||
| 606 | |||
| 607 | func colorStringsFromHex(hex string) (string, string) { | ||
| 608 | rgba := gdk.NewRGBA() | ||
| 609 | if !rgba.Parse(hex) { | ||
| 610 | return "", "" | ||
| 611 | } | ||
| 612 | r := int(math.Round(rgba.GetRed() * 255)) | ||
| 613 | g := int(math.Round(rgba.GetGreen() * 255)) | ||
| 614 | b := int(math.Round(rgba.GetBlue() * 255)) | ||
| 615 | h, s, v := rgbToHSV(rgba) | ||
| 616 | return fmt.Sprintf("rgb(%d, %d, %d)", r, g, b), fmt.Sprintf("hsv(%d, %d, %d)", int(h), int(s), int(v)) | ||
| 513 | } | 617 | } |
| 514 | 618 | ||
| 515 | func (app *App) applyHexEntry() { | 619 | func (app *App) applyHexEntry() { |
| @@ -645,13 +749,12 @@ func (app *App) onFavoriteSelectionChanged(selection *gtk.TreeSelection) { | |||
| 645 | } | 749 | } |
| 646 | 750 | ||
| 647 | func (app *App) populatePaletteGrid() { | 751 | func (app *App) populatePaletteGrid() { |
| 648 | for { | 752 | children := app.paletteGrid.GetChildren() |
| 649 | child, err := app.paletteGrid.GetChildAt(0, 0) | 753 | children.Foreach(func(item interface{}) { |
| 650 | if err != nil || child == nil { | 754 | if widget, ok := item.(*gtk.Widget); ok { |
| 651 | break | 755 | app.paletteGrid.Remove(widget) |
| 652 | } | 756 | } |
| 653 | app.paletteGrid.Remove(child) | 757 | }) |
| 654 | } | ||
| 655 | 758 | ||
| 656 | colors := paletteByName(app.activePaletteName()) | 759 | colors := paletteByName(app.activePaletteName()) |
| 657 | cols := 24 | 760 | cols := 24 |
| @@ -666,6 +769,18 @@ func (app *App) populatePaletteGrid() { | |||
| 666 | img, _ := gtk.ImageNewFromPixbuf(solidPixbuf(hex, 16, 11)) | 769 | img, _ := gtk.ImageNewFromPixbuf(solidPixbuf(hex, 16, 11)) |
| 667 | btn.Add(img) | 770 | btn.Add(img) |
| 668 | h := hex | 771 | h := hex |
| 772 | btn.Connect("button-press-event", func(_ *gtk.Button, ev *gdk.Event) bool { | ||
| 773 | if ev == nil { | ||
| 774 | return false | ||
| 775 | } | ||
| 776 | evBtn := gdk.EventButtonNewFromEvent(ev) | ||
| 777 | if evBtn == nil || evBtn.Button() != 3 { | ||
| 778 | return false | ||
| 779 | } | ||
| 780 | rgbText, hsvText := colorStringsFromHex(h) | ||
| 781 | app.showColorContextMenu(h, rgbText, hsvText, ev) | ||
| 782 | return true | ||
| 783 | }) | ||
| 669 | btn.Connect("clicked", func() { | 784 | btn.Connect("clicked", func() { |
| 670 | rgba := gdk.NewRGBA() | 785 | rgba := gdk.NewRGBA() |
| 671 | if rgba.Parse(h) { | 786 | if rgba.Parse(h) { |
| @@ -925,19 +1040,102 @@ func generateScheme(base *gdk.RGBA, schemeName string) []*gdk.RGBA { | |||
| 925 | 1040 | ||
| 926 | func paletteByName(name string) []string { | 1041 | func paletteByName(name string) []string { |
| 927 | switch name { | 1042 | switch name { |
| 928 | case "Tango": | 1043 | case "Web-safe (legacy)": |
| 1044 | vals := []int{0x00, 0x33, 0x66, 0x99, 0xCC, 0xFF} | ||
| 1045 | colors := make([]string, 0, 216) | ||
| 1046 | for _, r := range vals { | ||
| 1047 | for _, g := range vals { | ||
| 1048 | for _, b := range vals { | ||
| 1049 | colors = append(colors, fmt.Sprintf("#%02X%02X%02X", r, g, b)) | ||
| 1050 | } | ||
| 1051 | } | ||
| 1052 | } | ||
| 1053 | return colors | ||
| 1054 | case "Material Design": | ||
| 1055 | return []string{ | ||
| 1056 | "#F44336", "#E91E63", "#9C27B0", "#673AB7", "#3F51B5", "#2196F3", | ||
| 1057 | "#03A9F4", "#00BCD4", "#009688", "#4CAF50", "#8BC34A", "#CDDC39", | ||
| 1058 | "#FFEB3B", "#FFC107", "#FF9800", "#FF5722", "#795548", "#9E9E9E", | ||
| 1059 | "#607D8B", "#000000", "#FFFFFF", "#EF5350", "#EC407A", "#AB47BC", | ||
| 1060 | "#7E57C2", "#5C6BC0", "#42A5F5", "#29B6F6", "#26C6DA", "#26A69A", | ||
| 1061 | "#66BB6A", "#9CCC65", "#D4E157", "#FFEE58", "#FFCA28", "#FFA726", | ||
| 1062 | "#FF7043", "#8D6E63", "#BDBDBD", "#78909C", "#212121", "#FAFAFA", | ||
| 1063 | "#C62828", "#AD1457", "#6A1B9A", "#4527A0", "#283593", "#1565C0", | ||
| 1064 | } | ||
| 1065 | case "Tailwind CSS": | ||
| 1066 | return []string{ | ||
| 1067 | "#EF4444", "#F97316", "#F59E0B", "#EAB308", "#84CC16", "#22C55E", | ||
| 1068 | "#10B981", "#14B8A6", "#06B6D4", "#0EA5E9", "#3B82F6", "#6366F1", | ||
| 1069 | "#8B5CF6", "#A855F7", "#D946EF", "#EC4899", "#F43F5E", "#64748B", | ||
| 1070 | "#DC2626", "#EA580C", "#D97706", "#CA8A04", "#65A30D", "#16A34A", | ||
| 1071 | "#059669", "#0D9488", "#0891B2", "#0284C7", "#2563EB", "#4F46E5", | ||
| 1072 | "#7C3AED", "#9333EA", "#C026D3", "#DB2777", "#E11D48", "#475569", | ||
| 1073 | "#991B1B", "#9A3412", "#92400E", "#854D0E", "#3F6212", "#14532D", | ||
| 1074 | "#064E3B", "#134E4A", "#164E63", "#075985", "#1E3A8A", "#312E81", | ||
| 1075 | } | ||
| 1076 | case "Flat UI": | ||
| 1077 | return []string{ | ||
| 1078 | "#1ABC9C", "#16A085", "#2ECC71", "#27AE60", "#3498DB", "#2980B9", | ||
| 1079 | "#9B59B6", "#8E44AD", "#34495E", "#2C3E50", "#F1C40F", "#F39C12", | ||
| 1080 | "#E67E22", "#D35400", "#E74C3C", "#C0392B", "#ECF0F1", "#BDC3C7", | ||
| 1081 | "#95A5A6", "#7F8C8D", "#52B3D9", "#E8F8F5", "#D5F4E6", "#D6EAF8", | ||
| 1082 | "#E8DAEF", "#FADBD8", "#F9E79F", "#FAD7A0", "#F5B7B1", "#D7DBDD", | ||
| 1083 | } | ||
| 1084 | case "Pastel": | ||
| 1085 | return []string{ | ||
| 1086 | "#FFB3BA", "#FFDFBA", "#FFFFBA", "#BAFFC9", "#BAE1FF", "#E0BBE4", | ||
| 1087 | "#FFDFD3", "#FEC8D8", "#D5AAFF", "#B4F8C8", "#A0E7E5", "#FFAEBC", | ||
| 1088 | "#FBE7C6", "#B4F8C8", "#A0C4FF", "#BDB2FF", "#FFC6FF", "#FDFFB6", | ||
| 1089 | "#CAFFBF", "#9BF6FF", "#A0C4FF", "#BDB2FF", "#FFC6FF", "#FFFFFC", | ||
| 1090 | "#FFD6A5", "#FDFFB6", "#CAFFBF", "#A8E6CF", "#FFD3B6", "#FFAAA5", | ||
| 1091 | } | ||
| 1092 | case "Nord": | ||
| 1093 | return []string{ | ||
| 1094 | "#2E3440", "#3B4252", "#434C5E", "#4C566A", "#D8DEE9", "#E5E9F0", | ||
| 1095 | "#ECEFF4", "#8FBCBB", "#88C0D0", "#81A1C1", "#5E81AC", "#BF616A", | ||
| 1096 | "#D08770", "#EBCB8B", "#A3BE8C", "#B48EAD", "#4C566A", "#434C5E", | ||
| 1097 | "#3B4252", "#2E3440", "#ECEFF4", "#E5E9F0", "#D8DEE9", "#88C0D0", | ||
| 1098 | } | ||
| 1099 | case "Dracula": | ||
| 1100 | return []string{ | ||
| 1101 | "#282A36", "#44475A", "#F8F8F2", "#6272A4", "#8BE9FD", "#50FA7B", | ||
| 1102 | "#FFB86C", "#FF79C6", "#BD93F9", "#FF5555", "#F1FA8C", "#21222C", | ||
| 1103 | "#191A21", "#6272A4", "#B45BCF", "#4D4F68", "#626483", "#62D6E8", | ||
| 1104 | "#EA51B2", "#EBFF87", "#00F769", "#B45BCF", "#7081D0", "#A1EFE4", | ||
| 1105 | } | ||
| 1106 | case "Solarized": | ||
| 1107 | return []string{ | ||
| 1108 | "#002B36", "#073642", "#586E75", "#657B83", "#839496", "#93A1A1", | ||
| 1109 | "#EEE8D5", "#FDF6E3", "#B58900", "#CB4B16", "#DC322F", "#D33682", | ||
| 1110 | "#6C71C4", "#268BD2", "#2AA198", "#859900", "#002B36", "#073642", | ||
| 1111 | "#586E75", "#657B83", "#839496", "#93A1A1", "#EEE8D5", "#FDF6E3", | ||
| 1112 | } | ||
| 1113 | case "Gruvbox": | ||
| 1114 | return []string{ | ||
| 1115 | "#282828", "#CC241D", "#98971A", "#D79921", "#458588", "#B16286", | ||
| 1116 | "#689D6A", "#A89984", "#928374", "#FB4934", "#B8BB26", "#FABD2F", | ||
| 1117 | "#83A598", "#D3869B", "#8EC07C", "#EBDBB2", "#FBF1C7", "#3C3836", | ||
| 1118 | "#504945", "#665C54", "#7C6F64", "#D65D0E", "#FE8019", "#BDAE93", | ||
| 1119 | } | ||
| 1120 | case "One Dark": | ||
| 1121 | return []string{ | ||
| 1122 | "#282C34", "#ABB2BF", "#E06C75", "#D19A66", "#E5C07B", "#98C379", | ||
| 1123 | "#56B6C2", "#61AFEF", "#C678DD", "#BE5046", "#3B4048", "#4B5263", | ||
| 1124 | "#545862", "#565C64", "#5C6370", "#636D83", "#828997", "#2C323C", | ||
| 1125 | "#353B45", "#3E4451", "#4F5666", "#5F697A", "#6B7587", "#979EAB", | ||
| 1126 | } | ||
| 1127 | case "Monokai": | ||
| 929 | return []string{ | 1128 | return []string{ |
| 930 | "#2E3436", "#555753", "#888A85", "#BABDB6", "#D3D7CF", "#EEEEEC", | 1129 | "#272822", "#F8F8F2", "#F92672", "#E6DB74", "#A6E22E", "#66D9EF", |
| 931 | "#FCE94F", "#EDD400", "#C4A000", "#8AE234", "#73D216", "#4E9A06", | 1130 | "#AE81FF", "#FD971F", "#75715E", "#49483E", "#3E3D32", "#F8F8F0", |
| 932 | "#729FCF", "#3465A4", "#204A87", "#AD7FA8", "#75507B", "#5C3566", | 1131 | "#F5F4F1", "#A59F85", "#FD5FF0", "#F4BF75", "#FFF59D", "#CFCFC2", |
| 933 | "#EF2929", "#CC0000", "#A40000", "#FCAF3E", "#F57900", "#CE5C00", | 1132 | "#A1EFE4", "#FFE792", "#CC6633", "#778899", "#9D550F", "#E69F66", |
| 934 | } | 1133 | } |
| 935 | case "Visibone Core": | 1134 | case "KiJiSH Dark Pastel Terminal": |
| 936 | return []string{ | 1135 | return []string{ |
| 937 | "#000000", "#333333", "#666666", "#999999", "#CCCCCC", "#FFFFFF", | 1136 | "#2C2C2C", "#DCDCDC", "#3F3F3F", "#D67979", "#60B48A", "#DFAF8F", |
| 938 | "#FF0000", "#FF9900", "#FFFF00", "#00FF00", "#00FFFF", "#0000FF", | 1137 | "#9AB8D7", "#DC8CC3", "#8CD0D3", "#DCDCDC", "#709080", "#DCA3A3", |
| 939 | "#9900FF", "#FF00FF", "#FF0066", "#663300", "#CC6633", "#99CC33", | 1138 | "#72D5A3", "#F0DFAF", "#94BFF3", "#EC93D3", "#93E0E3", "#FFFFFF", |
| 940 | "#6699CC", "#CC33CC", "#CC9999", "#33CCCC", "#336699", "#9966CC", | ||
| 941 | } | 1139 | } |
| 942 | default: | 1140 | default: |
| 943 | vals := []int{0x00, 0x33, 0x66, 0x99, 0xCC, 0xFF} | 1141 | vals := []int{0x00, 0x33, 0x66, 0x99, 0xCC, 0xFF} |
