/* Guess Market desktop UI stylesheet. * * PALETTES & TYPOGRAPHY: * Each skin class (.gm-skin-*) defines its own looked-up color variables (-gm-*) * and root font-family. AppView puts exactly one skin class on the scene root, * allowing all child rules to automatically cascade and re-resolve without * requiring any inline CSS or manual style-string construction in Java. * * BUNDLED NERD FONTS: * - Rosé Pine Dawn -> CaskaydiaCove Nerd Font (CaskaydiaCove NF) * - Catppuccin -> JetBrainsMono Nerd Font (JetBrainsMono NF) * - Gruvbox -> FiraCode Nerd Font (FiraCode Nerd Font) */ @font-face { font-family: 'CaskaydiaCove NF'; src: url('fonts/CaskaydiaCoveNerdFont-Regular.ttf'); } @font-face { font-family: 'CaskaydiaCove NF'; font-weight: bold; src: url('fonts/CaskaydiaCoveNerdFont-Bold.ttf'); } @font-face { font-family: 'JetBrainsMono NF'; src: url('fonts/JetBrainsMonoNerdFont-Regular.ttf'); } @font-face { font-family: 'JetBrainsMono NF'; font-weight: bold; src: url('fonts/JetBrainsMonoNerdFont-Bold.ttf'); } @font-face { font-family: 'FiraCode Nerd Font'; src: url('fonts/FiraCodeNerdFont-Regular.ttf'); } @font-face { font-family: 'FiraCode Nerd Font'; font-weight: bold; src: url('fonts/FiraCodeNerdFont-Bold.ttf'); } /* rose-pine.dev/palette/#dawn — base/surface/overlay/highlight, iris accent, pine/love for yes/no */ .gm-root, .gm-root:skin-rose-pine-dawn, .gm-skin-rose-pine-dawn { -fx-font-family: "CaskaydiaCove NF", "CaskaydiaCove Nerd Font", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; -fx-font-size: 13px; -gm-bg: #faf4ed; -gm-panel: #fffaf3; -gm-panel2: #f2e9e1; -gm-panel3: #dfdad9; -gm-line: #cecacd; -gm-ink: #575279; -gm-ink2: #797593; -gm-accent: #907aa9; -gm-accent-fg: #fffaf3; -gm-btn: #f2e9e1; -gm-btn-line: #cecacd; -gm-yes: #286983; -gm-no: #b4637a; -gm-yes-soft: #e3edf0; -gm-no-soft: #f5e6ea; } /* catppuccin.com Mocha — mantle/base/surface, mauve accent, green/red for yes/no */ .gm-root:skin-catppuccin, .gm-skin-catppuccin { -fx-font-family: "JetBrainsMono NF", "JetBrainsMono Nerd Font", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; -fx-font-size: 13px; -gm-bg: #181825; -gm-panel: #1e1e2e; -gm-panel2: #313244; -gm-panel3: #45475a; -gm-line: #585b70; -gm-ink: #cdd6f4; -gm-ink2: #a6adc8; -gm-accent: #cba6f7; -gm-accent-fg: #1e1e2e; -gm-btn: #313244; -gm-btn-line: #585b70; -gm-yes: #a6e3a1; -gm-no: #f38ba8; -gm-yes-soft: #23312a; -gm-no-soft: #34232c; } /* gruvbox dark (hard) — bg0_h/bg0/bg1/bg2, bright orange accent, bright green/red */ .gm-root:skin-gruvbox, .gm-skin-gruvbox { -fx-font-family: "FiraCode Nerd Font", "FiraCode NF", Consolas, "Liberation Mono", Menlo, monospace; -fx-font-size: 13.5px; -gm-bg: #1d2021; -gm-panel: #282828; -gm-panel2: #3c3836; -gm-panel3: #504945; -gm-line: #665c54; -gm-ink: #ebdbb2; -gm-ink2: #a89984; -gm-accent: #fe8019; -gm-accent-fg: #1d2021; -gm-btn: #3c3836; -gm-btn-line: #665c54; -gm-yes: #b8bb26; -gm-no: #fb4934; -gm-yes-soft: #2b3021; -gm-no-soft: #3b2320; } /* ---- typography & text fills ------------------------------------------ */ .root { -fx-text-fill: -gm-ink; } .gm-text-ink { -fx-text-fill: -gm-ink; } .gm-text-ink2 { -fx-text-fill: -gm-ink2; } .gm-text-accent { -fx-text-fill: -gm-accent; } .gm-text-accent-fg { -fx-text-fill: -gm-accent-fg; } .gm-text-yes { -fx-text-fill: -gm-yes; } .gm-text-no { -fx-text-fill: -gm-no; } .gm-font-mono, .gm-textfield-mono, .gm-pill, .gm-user-balance, .gm-balance-cell, .gm-pnl-cell, .gm-chart-axis, .gm-anim-tick { -fx-font-family: "CaskaydiaCove NF", "JetBrainsMono NF", "FiraCode Nerd Font", monospace; } .gm-root:skin-rose-pine-dawn .gm-font-mono, .gm-skin-rose-pine-dawn .gm-font-mono, .gm-root:skin-rose-pine-dawn .gm-textfield-mono, .gm-skin-rose-pine-dawn .gm-textfield-mono, .gm-root:skin-rose-pine-dawn .gm-pill, .gm-skin-rose-pine-dawn .gm-pill, .gm-root:skin-rose-pine-dawn .gm-user-balance, .gm-skin-rose-pine-dawn .gm-user-balance, .gm-root:skin-rose-pine-dawn .gm-balance-cell, .gm-skin-rose-pine-dawn .gm-balance-cell, .gm-root:skin-rose-pine-dawn .gm-pnl-cell, .gm-skin-rose-pine-dawn .gm-pnl-cell, .gm-root:skin-rose-pine-dawn .gm-chart-axis, .gm-skin-rose-pine-dawn .gm-chart-axis, .gm-root:skin-rose-pine-dawn .gm-anim-tick, .gm-skin-rose-pine-dawn .gm-anim-tick { -fx-font-family: "CaskaydiaCove NF", "CaskaydiaCove Nerd Font", monospace; } .gm-root:skin-catppuccin .gm-font-mono, .gm-skin-catppuccin .gm-font-mono, .gm-root:skin-catppuccin .gm-textfield-mono, .gm-skin-catppuccin .gm-textfield-mono, .gm-root:skin-catppuccin .gm-pill, .gm-skin-catppuccin .gm-pill, .gm-root:skin-catppuccin .gm-user-balance, .gm-skin-catppuccin .gm-user-balance, .gm-root:skin-catppuccin .gm-balance-cell, .gm-skin-catppuccin .gm-balance-cell, .gm-root:skin-catppuccin .gm-pnl-cell, .gm-skin-catppuccin .gm-pnl-cell, .gm-root:skin-catppuccin .gm-chart-axis, .gm-skin-catppuccin .gm-chart-axis, .gm-root:skin-catppuccin .gm-anim-tick, .gm-skin-catppuccin .gm-anim-tick { -fx-font-family: "JetBrainsMono NF", "JetBrainsMono Nerd Font", monospace; } .gm-root:skin-gruvbox .gm-font-mono, .gm-skin-gruvbox .gm-font-mono, .gm-root:skin-gruvbox .gm-textfield-mono, .gm-skin-gruvbox .gm-textfield-mono, .gm-root:skin-gruvbox .gm-pill, .gm-skin-gruvbox .gm-pill, .gm-root:skin-gruvbox .gm-user-balance, .gm-skin-gruvbox .gm-user-balance, .gm-root:skin-gruvbox .gm-balance-cell, .gm-skin-gruvbox .gm-balance-cell, .gm-root:skin-gruvbox .gm-pnl-cell, .gm-skin-gruvbox .gm-pnl-cell, .gm-root:skin-gruvbox .gm-chart-axis, .gm-skin-gruvbox .gm-chart-axis, .gm-root:skin-gruvbox .gm-anim-tick, .gm-skin-gruvbox .gm-anim-tick { -fx-font-family: "FiraCode Nerd Font", "FiraCode NF", monospace; } .gm-font-bold { -fx-font-weight: 700; } .gm-font-semibold { -fx-font-weight: 600; } .gm-font-medium { -fx-font-weight: 500; } .gm-font-regular { -fx-font-weight: 400; } .gm-text-xs { -fx-font-size: 10.5px; } .gm-text-sm { -fx-font-size: 11.5px; } .gm-text-base { -fx-font-size: 12.5px; } .gm-text-md { -fx-font-size: 13px; } .gm-text-lg { -fx-font-size: 14px; } .gm-text-xl { -fx-font-size: 17px; } .gm-text-2xl { -fx-font-size: 22px; } /* ---- window chrome & containers --------------------------------------- */ .gm-chrome { -fx-background-color: -gm-bg; } .gm-bg-panel { -fx-background-color: -gm-panel; } .gm-bg-panel2 { -fx-background-color: -gm-panel2; } .gm-bg-panel3 { -fx-background-color: -gm-panel3; } .gm-card { -fx-background-color: -gm-panel; -fx-border-color: -gm-line; -fx-border-width: 1; -fx-background-radius: 7; -fx-border-radius: 7; } .gm-card-panel2 { -fx-background-color: -gm-panel2; -fx-border-color: -gm-line; -fx-border-width: 1; -fx-background-radius: 6; -fx-border-radius: 6; } .gm-card-panel { -fx-background-color: -gm-panel; -fx-border-color: -gm-line; -fx-border-width: 1; -fx-background-radius: 6; -fx-border-radius: 6; } .gm-card-soft-yes { -fx-background-color: -gm-yes-soft; -fx-border-color: -gm-line; -fx-border-width: 1; -fx-background-radius: 6; -fx-border-radius: 6; } .gm-card-soft-no { -fx-background-color: -gm-no-soft; -fx-border-color: -gm-line; -fx-border-width: 1; -fx-background-radius: 6; -fx-border-radius: 6; } .gm-banner-blocked { -fx-background-color: -gm-no-soft; -fx-border-color: -gm-no; -fx-border-width: 1; -fx-background-radius: 6; -fx-border-radius: 6; } .gm-banner-resolved { -fx-background-color: -gm-yes-soft; -fx-border-color: -gm-line; -fx-border-width: 1; -fx-background-radius: 6; -fx-border-radius: 6; } .gm-divider-bottom { -fx-border-color: transparent transparent -gm-line transparent; -fx-border-width: 0 0 1 0; } .gm-divider-top { -fx-border-color: -gm-line transparent transparent transparent; -fx-border-width: 1 0 0 0; } .gm-hline { -fx-background-color: -gm-line; -fx-pref-height: 1; -fx-min-height: 1; } /* ---- buttons & interactive controls ----------------------------------- */ .gm-btn { -fx-border-width: 1; -fx-background-radius: 5; -fx-border-radius: 5; -fx-font-size: 13px; -fx-font-weight: 600; -fx-padding: 8 15; -fx-cursor: hand; } .gm-btn:hover { -fx-opacity: 0.92; } .gm-btn:disabled { -fx-opacity: 0.45; -fx-cursor: default; } .gm-btn-primary { -fx-background-color: -gm-accent; -fx-text-fill: -gm-accent-fg; -fx-border-color: -gm-accent; } .gm-btn-secondary { -fx-background-color: -gm-btn; -fx-text-fill: -gm-ink; -fx-border-color: -gm-btn-line; } .gm-btn-destructive { -fx-background-color: -gm-no; -fx-text-fill: -gm-accent-fg; -fx-border-color: -gm-no; -fx-border-width: 1; -fx-background-radius: 5; -fx-border-radius: 5; -fx-font-size: 12.5px; -fx-font-weight: 600; -fx-padding: 9 17; -fx-cursor: hand; } .gm-btn-destructive:disabled { -fx-opacity: 0.5; -fx-cursor: default; } .gm-app-scroll, .gm-app-scroll > .viewport { -fx-background-color: transparent; -fx-background-insets: 0; -fx-padding: 0; } .gm-tabs > .tab-header-area { -fx-padding: 6 16 0 16; } .gm-tabs > .tab-header-area > .tab-header-background { -fx-background-color: -gm-line, -gm-panel; -fx-background-insets: 0, 0 0 1 0; } .gm-tabs > .tab-content-area { -fx-background-color: transparent; } .gm-tabs > .tab-header-area > .headers-region > .tab { -fx-background-color: -gm-panel2; -fx-background-insets: 0 1 0 1; -fx-border-color: -gm-line; -fx-border-width: 1 1 0 1; -fx-border-insets: 0 1 0 1; -fx-background-radius: 6 6 0 0; -fx-border-radius: 6 6 0 0; -fx-padding: 9 20; -fx-cursor: hand; } .gm-tabs > .tab-header-area > .headers-region > .tab:selected { -fx-background-color: -gm-bg; } .gm-tabs > .tab-header-area > .headers-region > .tab .tab-label { -fx-text-fill: -gm-ink2; -fx-font-size: 13px; -fx-font-weight: 600; } .gm-tabs > .tab-header-area > .headers-region > .tab:selected .tab-label { -fx-text-fill: -gm-ink; } .gm-tabs > .tab-header-area > .headers-region > .tab:selected .focus-indicator { -fx-border-color: transparent; } .gm-toggle { -fx-background-color: -gm-btn; -fx-text-fill: -gm-ink2; -fx-border-color: -gm-btn-line; -fx-border-width: 1; -fx-background-radius: 4; -fx-border-radius: 4; -fx-font-size: 12px; -fx-font-weight: 500; -fx-padding: 5 11; -fx-cursor: hand; } .gm-toggle:selected { -fx-background-color: -gm-accent; -fx-text-fill: -gm-accent-fg; -fx-border-color: -gm-accent; } .gm-seg { -fx-background-color: -gm-btn; -fx-text-fill: -gm-ink; -fx-border-color: -gm-btn-line; -fx-border-width: 1; -fx-font-size: 12px; -fx-font-weight: 600; -fx-cursor: hand; } .gm-seg:selected { -fx-background-color: -gm-accent; -fx-text-fill: -gm-accent-fg; } .gm-seg:disabled { -fx-opacity: 0.45; -fx-cursor: default; } .gm-seg-left { -fx-background-radius: 5 0 0 5; -fx-border-radius: 5 0 0 5; } .gm-seg-right { -fx-background-radius: 0 5 5 0; -fx-border-radius: 0 5 5 0; } .gm-seg-pad-tight { -fx-padding: 8 0; } .gm-seg-pad-wide { -fx-padding: 8 15; } .gm-textfield { -fx-background-color: -gm-panel2; -fx-border-color: -gm-btn-line; -fx-border-width: 1; -fx-background-radius: 5; -fx-border-radius: 5; -fx-font-size: 13px; -fx-text-fill: -gm-ink; -fx-padding: 8 10; } .gm-textfield:disabled { -fx-opacity: 0.45; } .gm-textfield:error, .gm-textfield.error { -fx-border-color: -gm-no; -fx-border-width: 1.5; } .gm-textfield-mono { -fx-font-family: "CaskaydiaCove NF", "JetBrainsMono NF", "FiraCode Nerd Font", monospace; } .gm-textarea { -fx-control-inner-background: -gm-panel2; -fx-border-color: -gm-btn-line; -fx-border-radius: 5; -fx-background-radius: 5; -fx-font-size: 13px; -fx-text-fill: -gm-ink; } .gm-select-base { -fx-border-color: -gm-btn-line; -fx-border-radius: 5; -fx-background-radius: 5; -fx-font-size: 12.5px; -fx-text-base-color: -gm-ink; } .gm-select-btn-bg { -fx-background-color: -gm-btn; } .gm-select-panel2-bg { -fx-background-color: -gm-panel2; } .gm-checkbox { -fx-text-fill: -gm-ink2; -fx-font-size: 12.5px; } .gm-checkbox-strong { -fx-text-fill: -gm-ink; -fx-font-size: 12.5px; } .gm-link-button { -fx-background-color: transparent; -fx-text-fill: -gm-ink2; -fx-font-size: 14.5px; -fx-underline: false; -fx-cursor: hand; -fx-border-width: 0; } .gm-toast { -fx-background-color: -gm-ink; -fx-text-fill: -gm-bg; -fx-background-radius: 6; -fx-padding: 10 16; -fx-font-size: 12.5px; -fx-font-weight: 600; } .gm-scroll-transparent { -fx-background-color: transparent; -fx-background: transparent; } .gm-scroll-transparent > .viewport { -fx-background-color: transparent; } /* ---- badges, pills, traffic lights ------------------------------------ */ .gm-pill { -fx-background-radius: 3; -fx-padding: 3 6; -fx-font-family: "CaskaydiaCove NF", "JetBrainsMono NF", "FiraCode Nerd Font", monospace; -fx-font-size: 10px; -fx-font-weight: 600; -fx-background-color: -gm-panel3; -fx-text-fill: -gm-ink2; } /* Pseudo-class states for pills */ .gm-pill:active { -fx-background-color: -gm-yes-soft; -fx-text-fill: -gm-yes; } .gm-pill:closed { -fx-background-color: -gm-no-soft; -fx-text-fill: -gm-no; } .gm-pill:idle { -fx-background-color: -gm-panel3; -fx-text-fill: -gm-ink2; } .gm-pill:blocked { -fx-background-color: -gm-no; -fx-text-fill: -gm-accent-fg; } .gm-pill:mm { -fx-background-color: -gm-accent; -fx-text-fill: -gm-accent-fg; } .gm-pill:trader { -fx-background-color: -gm-panel3; -fx-text-fill: -gm-ink2; } .gm-pill:resolved { -fx-background-color: -gm-yes; -fx-text-fill: -gm-accent-fg; } .gm-pill-active { -fx-background-color: -gm-yes-soft; -fx-text-fill: -gm-yes; } .gm-pill-closed { -fx-background-color: -gm-no-soft; -fx-text-fill: -gm-no; } .gm-pill-idle { -fx-background-color: -gm-panel3; -fx-text-fill: -gm-ink2; } .gm-pill-blocked { -fx-background-color: -gm-no; -fx-text-fill: -gm-accent-fg; } .gm-pill-mm { -fx-background-color: -gm-accent; -fx-text-fill: -gm-accent-fg; } .gm-pill-trader { -fx-background-color: -gm-panel3; -fx-text-fill: -gm-ink2; } .gm-pill-resolved { -fx-background-color: -gm-yes; -fx-text-fill: -gm-accent-fg; } /* ---- user balance ---------------------------------------------------- */ .gm-user-balance { -fx-font-family: "CaskaydiaCove NF", "JetBrainsMono NF", "FiraCode Nerd Font", monospace; -fx-font-size: 22px; -fx-font-weight: 600; -fx-text-fill: -gm-accent; } .gm-user-balance:negative { -fx-text-fill: -gm-no; } /* ---- traffic lights with macOS on-hover symbols ---------------------- */ .gm-traffic-lights { -fx-alignment: center-left; } .gm-traffic-dot { -fx-min-width: 12px; -fx-min-height: 12px; -fx-pref-width: 12px; -fx-pref-height: 12px; -fx-max-width: 12px; -fx-max-height: 12px; -fx-background-radius: 999px; -fx-alignment: center; -fx-cursor: hand; } .gm-traffic-icon { -fx-fill: transparent; -fx-stroke: transparent; -fx-stroke-width: 1.1; -fx-stroke-line-cap: round; } /* Reveal glyphs on traffic lights cluster hover */ .gm-traffic-lights:hover .gm-traffic-icon { -fx-stroke: rgba(0, 0, 0, 0.68); } .gm-traffic-dot:hover { -fx-opacity: 0.85; } .gm-traffic-dot:pressed { -fx-opacity: 0.70; } .gm-traffic-dot-no { -fx-background-color: -gm-no; } .gm-traffic-dot-accent { -fx-background-color: -gm-accent; } .gm-traffic-dot-yes { -fx-background-color: -gm-yes; } /* ---- list rows, tables & option cards --------------------------------- */ .gm-balance-cell { -fx-font-family: "CaskaydiaCove NF", "JetBrainsMono NF", "FiraCode Nerd Font", monospace; -fx-font-size: 13px; -fx-font-weight: 600; -fx-text-fill: -gm-accent; } .gm-balance-cell:negative { -fx-text-fill: -gm-no; } .gm-pnl-cell { -fx-font-family: "CaskaydiaCove NF", "JetBrainsMono NF", "FiraCode Nerd Font", monospace; -fx-font-size: 12px; -fx-font-weight: 600; -fx-text-fill: -gm-yes; } .gm-pnl-cell:negative { -fx-text-fill: -gm-no; } .gm-list-view { -fx-background-color: transparent; -fx-background-insets: 0; -fx-padding: 0; -fx-border-color: transparent; -fx-border-width: 0; } .gm-list-view .list-cell { -fx-background-color: transparent; -fx-background-insets: 0; -fx-padding: 1 0; } .gm-list-view .list-cell:empty { -fx-background-color: transparent; } .gm-list-view .list-cell:filled:selected { -fx-background-color: transparent; } .gm-list-view:focused .list-cell:filled:focused:selected { -fx-background-color: transparent; } .gm-list-row { -fx-background-color: transparent; -fx-border-color: transparent; -fx-border-width: 0 0 0 3; -fx-background-radius: 5; -fx-cursor: hand; } .gm-list-row:hover { -fx-background-color: -gm-panel2; } .gm-list-row:selected { -fx-background-color: -gm-panel3; -fx-border-color: -gm-accent; } .gm-ladder-row { -fx-border-color: -gm-line transparent transparent transparent; -fx-border-width: 1 0 0 0; } .gm-ladder-row:bid, .gm-ladder-row-bid { -fx-background-color: -gm-yes-soft; } .gm-ladder-row:ask, .gm-ladder-row-ask { -fx-background-color: -gm-no-soft; } .gm-participation-row { -fx-border-color: -gm-line transparent transparent transparent; -fx-border-width: 1 0 0 0; -fx-cursor: hand; } .gm-participation-row:hover { -fx-background-color: -gm-panel2; } .gm-participation-row:selected { -fx-background-color: -gm-panel3; } .gm-option-card { -fx-background-radius: 6; -fx-border-radius: 6; -fx-cursor: hand; -fx-background-color: -gm-panel; -fx-border-color: -gm-line; -fx-border-width: 1; } .gm-option-card-yes:selected { -fx-background-color: -gm-yes-soft; -fx-border-color: -gm-yes; -fx-border-width: 1.5; } .gm-option-card-no:selected { -fx-background-color: -gm-no-soft; -fx-border-color: -gm-no; -fx-border-width: 1.5; } /* ---- modals & dialogs ------------------------------------------------- */ .gm-modal-scrim { -fx-background-color: rgba(10, 10, 10, 0.42); } .gm-modal-card { -fx-background-color: -gm-panel; -fx-background: -gm-panel; -fx-background-radius: 8; -fx-border-radius: 8; -fx-border-color: -gm-line; } .gm-resolve-option { -fx-border-width: 1; -fx-background-radius: 6; -fx-border-radius: 6; -fx-font-size: 14px; -fx-font-weight: 700; -fx-padding: 14 0; -fx-cursor: hand; -fx-background-color: -gm-panel2; -fx-border-color: -gm-line; } .gm-resolve-option-yes { -fx-text-fill: -gm-yes; } .gm-resolve-option-yes:selected { -fx-background-color: -gm-yes-soft; -fx-border-color: -gm-yes; -fx-border-width: 1.5; } .gm-resolve-option-no { -fx-text-fill: -gm-no; } .gm-resolve-option-no:selected { -fx-background-color: -gm-no-soft; -fx-border-color: -gm-no; -fx-border-width: 1.5; } /* ---- progress bars ---------------------------------------------------- */ .gm-progress { -fx-control-inner-background: -gm-panel3; } .gm-progress > .track { -fx-background-color: -gm-panel3; -fx-background-insets: 0; -fx-background-radius: 3px; -fx-padding: 0; } .gm-progress > .bar { -fx-background-insets: 0; -fx-background-radius: 3px; -fx-padding: 0; } .gm-progress-accent > .bar { -fx-background-color: -gm-accent; } .gm-progress-yes > .bar { -fx-background-color: -gm-yes; } .gm-progress-no > .bar { -fx-background-color: -gm-no; } /* ---- charts ----------------------------------------------------------- */ .gm-chart { -fx-background-color: transparent; } .gm-chart-axis { -fx-tick-label-fill: -gm-ink2; -fx-tick-mark-stroke: -gm-ink2; -fx-font-family: "CaskaydiaCove NF", "JetBrainsMono NF", "FiraCode Nerd Font", monospace; -fx-font-size: 10px; } .gm-chart-axis .axis-tick-mark, .gm-chart-axis .axis-minor-tick-mark { -fx-fill: null; -fx-stroke: -gm-ink2; } .gm-chart-axis:bottom { -fx-border-color: -gm-line transparent transparent transparent; } .gm-chart-axis:left { -fx-border-color: transparent -gm-line transparent transparent; } .gm-chart .chart-line-symbol { -fx-background-color: transparent, transparent; -fx-background-radius: 0; -fx-padding: 0; } .gm-chart .chart-series-line { -fx-stroke-width: 2.5px; } .gm-chart-single .series0.chart-series-line { -fx-stroke: -gm-accent; } .gm-chart-dual .series0.chart-series-line { -fx-stroke: -gm-yes; } .gm-chart-dual .series1.chart-series-line { -fx-stroke: -gm-no; } /* ---- decorative animations (see Anim.java) ---------------------------- */ .gm-anim-rule { -fx-stroke: -gm-line; } .gm-anim-tick { -fx-fill: -gm-ink2; -fx-font-family: "CaskaydiaCove NF", "JetBrainsMono NF", "FiraCode Nerd Font", monospace; -fx-font-size: 9px; } .gm-anim-curve-yes { -fx-stroke: -gm-yes; } .gm-anim-curve-no { -fx-stroke: -gm-no; } .gm-anim-dot-yes { -fx-fill: -gm-yes; } .gm-anim-dot-no { -fx-fill: -gm-no; } /* LIVE pill: bars and label take the pill's status colour */ .gm-live-pill { -fx-padding: 3 7; } .gm-anim-bar { -fx-fill: -gm-ink2; } .gm-live-label { -fx-text-fill: -gm-ink2; } .gm-pill:active .gm-anim-bar { -fx-fill: -gm-yes; } .gm-pill:active .gm-live-label { -fx-text-fill: -gm-yes; } .gm-pill:closed .gm-anim-bar { -fx-fill: -gm-no; } .gm-pill:closed .gm-live-label { -fx-text-fill: -gm-no; } /* Balance sparkline: stroke follows the sign of the balance */ .gm-anim-spark { -fx-stroke: -gm-accent; } .gm-anim-spark-dot { -fx-fill: -gm-accent; } .gm-anim-sparkline:negative .gm-anim-spark { -fx-stroke: -gm-no; } .gm-anim-sparkline:negative .gm-anim-spark-dot { -fx-fill: -gm-no; } /* Animation toggle button & spinner */ .gm-btn-icon { -fx-padding: 4 8; -fx-min-width: 34px; -fx-min-height: 30px; -fx-pref-height: 30px; -fx-alignment: center; } .gm-btn-icon:selected { -fx-background-color: -gm-panel3; -fx-border-color: -gm-accent; } .gm-anim-spinner { -fx-fill: -gm-ink2; } .gm-anim-spinner-hub { -fx-fill: -gm-panel; -fx-stroke: -gm-ink2; -fx-stroke-width: 1; } .gm-btn-icon:selected .gm-anim-spinner { -fx-fill: -gm-accent; } .gm-btn-icon:selected .gm-anim-spinner-hub { -fx-fill: -gm-panel; -fx-stroke: -gm-accent; -fx-stroke-width: 1; }