@motir/design-system 0.8.2 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/theme.css CHANGED
@@ -2522,6 +2522,49 @@
2522
2522
  }
2523
2523
  }
2524
2524
 
2525
+ /* Showcase fields under the chrome (motir.co's illustrations). The card rule
2526
+ above repaints every card-radius panel with --el-surface, which turns a
2527
+ showcase field — the deep ground, the accent field — into a grey panel with
2528
+ its light text left on it. A showcase panel names its field with
2529
+ `data-showcase="<field>"`; it keeps that fill under the chrome, and the deep
2530
+ fields take a quieter streak and bevel so the light text keeps its contrast.
2531
+ Palette-derived like every material rule here: the fills are the showcase
2532
+ tokens, the sheen is the style's own achromatic white. */
2533
+ @scope ([data-style='retrofuturism']) to ([data-style]) {
2534
+ [data-showcase='field'] {
2535
+ background-color: var(--el-showcase-field);
2536
+ }
2537
+ [data-showcase='ground'] {
2538
+ background-color: var(--el-showcase-ground);
2539
+ }
2540
+ [data-showcase='ground-raised'] {
2541
+ background-color: var(--el-showcase-ground-raised);
2542
+ }
2543
+ [data-showcase='decision'] {
2544
+ background-color: var(--el-showcase-decision);
2545
+ }
2546
+ [data-showcase='record'] {
2547
+ background-color: var(--el-showcase-record);
2548
+ }
2549
+ [data-showcase='wash'] {
2550
+ background-color: var(--el-showcase-wash);
2551
+ }
2552
+ [data-showcase='wash-warm'] {
2553
+ background-color: var(--el-showcase-wash-warm);
2554
+ }
2555
+ [data-showcase='paper'] {
2556
+ background-color: var(--el-showcase-paper);
2557
+ }
2558
+ [data-showcase='field'],
2559
+ [data-showcase='ground'],
2560
+ [data-showcase='ground-raised'],
2561
+ [data-showcase='decision'],
2562
+ [data-showcase='record'] {
2563
+ --retro-spec: 12%;
2564
+ --retro-bevel-light: 10%;
2565
+ }
2566
+ }
2567
+
2525
2568
  /* Modal panel — the same chrome, with a deeper palette glow so the dialog
2526
2569
  separates cleanly from the grid behind it (and body text stays on the solid
2527
2570
  surface). Overrides the card-radius rule above for the modal radius. */
@@ -3860,6 +3903,91 @@
3860
3903
  --el-sidebar-item-bg-active: var(
3861
3904
  --color-background
3862
3905
  ); /* active row = canvas inset into the rail */
3906
+
3907
+ /* ── Product marks (motir.co's Products menu) ───────────────────────── */
3908
+ /* The small square beside each product's name. One per product, each a
3909
+ palette hue — or a mix of two, where the palette has fewer distinct hues
3910
+ than there are products — so a palette re-skins all of them. */
3911
+ --el-product-ai-planner: var(--color-primary);
3912
+ --el-product-project-management: var(--color-accent-teal);
3913
+ --el-product-project-manager: var(--color-accent);
3914
+ --el-product-ai-debugging: var(--color-destructive);
3915
+ --el-product-mcp: color-mix(in srgb, var(--color-primary) 55%, var(--color-destructive));
3916
+ --el-product-cli: var(--color-charcoal);
3917
+ --el-product-claude-code-connector: var(--color-accent-green);
3918
+ --el-product-claude-code-plugin: color-mix(
3919
+ in srgb,
3920
+ var(--color-accent) 55%,
3921
+ var(--color-accent-green)
3922
+ );
3923
+ --el-product-agent-fleet: color-mix(in srgb, var(--color-primary) 50%, var(--color-accent-teal));
3924
+ --el-product-agent-hosting: var(--color-slate);
3925
+ --el-product-sandbox: color-mix(in srgb, var(--color-accent) 45%, var(--color-charcoal));
3926
+
3927
+ /* ── Logo tile (the wave mark on its rounded square) ─────────────── */
3928
+ /* The mark is the palette's identity hue — its primary FILL, the colour its
3929
+ swatch shows — on a tile chosen so the mark reads: a pale wash of that hue
3930
+ here; a palette whose identity hue is itself bright or pale sets a dark
3931
+ tile in its own block. */
3932
+ --el-logo-mark: var(--color-primary-fill);
3933
+ --el-logo-tile: color-mix(in srgb, var(--color-primary-fill) 14%, var(--color-background));
3934
+
3935
+ /* ── Showcase (motir.co's illustrations) ─────────────────────── */
3936
+ /* The marketing site draws its pictures as flat fields holding small
3937
+ example screens ("Vibe the project" and "How Motir works"). These are
3938
+ the pictures' own element tokens, named for what they paint — the
3939
+ palette decides the colour. Each FIELD has a TEXT token that reads on it
3940
+ in every palette and theme.
3941
+ field — the main picture field (the plan, the progress lanes);
3942
+ field-ink is that colour as text on paper
3943
+ ground — the deep ground (the project-manager panel, the design and
3944
+ run pictures), with its raised step, rule and muted text
3945
+ highlight — the one bright touch, drawn on the ground and on the
3946
+ record field (the person's marks in the history)
3947
+ decision — a choice that waits on the person ("Your call")
3948
+ record — the history / learning field
3949
+ wash — the quiet pictures (docs, the written brief, memory)
3950
+ wash-warm — the quiet warm picture (the plan gate)
3951
+ paper — the small screens inside the fields
3952
+ wave-1..3 — the hero's moving wave lines */
3953
+ --el-showcase-field: var(--color-primary);
3954
+ --el-showcase-field-text: var(--color-background);
3955
+ --el-showcase-field-ink: var(--color-primary);
3956
+ --el-showcase-ground: var(--color-foreground);
3957
+ --el-showcase-ground-text: var(--color-background);
3958
+ --el-showcase-ground-muted: color-mix(
3959
+ in srgb,
3960
+ var(--color-background) 68%,
3961
+ var(--color-foreground)
3962
+ );
3963
+ --el-showcase-ground-raised: color-mix(
3964
+ in srgb,
3965
+ var(--color-foreground) 90%,
3966
+ var(--color-background)
3967
+ );
3968
+ --el-showcase-ground-rule: color-mix(
3969
+ in srgb,
3970
+ var(--color-foreground) 74%,
3971
+ var(--color-background)
3972
+ );
3973
+ --el-showcase-highlight: color-mix(in srgb, var(--color-accent) 55%, var(--color-background));
3974
+ --el-showcase-decision: color-mix(in srgb, var(--color-accent) 70%, var(--color-background));
3975
+ --el-showcase-decision-text: var(--color-foreground);
3976
+ --el-showcase-decision-ink: color-mix(in srgb, var(--color-accent) 65%, var(--color-foreground));
3977
+ --el-showcase-record: color-mix(in srgb, var(--color-accent-teal) 72%, var(--color-foreground));
3978
+ --el-showcase-record-text: var(--color-background);
3979
+ --el-showcase-wash: var(--color-tint-sky);
3980
+ --el-showcase-wash-warm: var(--color-tint-peach);
3981
+ --el-showcase-paper: var(--color-background);
3982
+ --el-showcase-paper-soft: var(--color-surface-soft);
3983
+ --el-showcase-rule: var(--color-hairline);
3984
+ --el-showcase-text: var(--color-foreground);
3985
+ --el-showcase-muted: var(--color-slate);
3986
+ /* The hero's wave lines: the three palette hues the moving colour band
3987
+ cycles through — the accent, the teal, the warm accent. */
3988
+ --el-showcase-wave-1: var(--color-primary);
3989
+ --el-showcase-wave-2: var(--color-accent-teal);
3990
+ --el-showcase-wave-3: var(--color-accent);
3863
3991
  }
3864
3992
 
3865
3993
  /* Dark-mode lift for the sidebar hover token. The other three --el-sidebar-*
@@ -3921,6 +4049,27 @@
3921
4049
  other concrete-hex --el-* alongside the sidebar hover. Light value (40%,
3922
4050
  == the prior bg-black/40) lives in the :root block above. */
3923
4051
  --el-overlay-scrim: #000000a6;
4052
+ /* The logo in dark: the palette's dark primary — the lightened identity hue
4053
+ built to read on a dark page — on a deep wash of it. */
4054
+ --el-logo-mark: var(--color-primary);
4055
+ --el-logo-tile: color-mix(in srgb, var(--color-primary) 18%, var(--color-background));
4056
+ /* Showcase in dark (see the Tier-3 showcase block): the field is the
4057
+ dark accent pulled halfway to the page, so it stays a saturated mid-tone
4058
+ carrying LIGHT text; the ground stays dark instead of inverting — the
4059
+ palette's recessed canvas, the one step below both page and surface; the decision and record fields carry the page's dark ink. */
4060
+ --el-showcase-field: color-mix(in srgb, var(--color-primary) 45%, var(--color-background));
4061
+ --el-showcase-field-text: var(--color-foreground);
4062
+ --el-showcase-field-ink: color-mix(in srgb, var(--color-primary) 75%, var(--color-foreground));
4063
+ --el-showcase-ground: var(--color-canvas);
4064
+ --el-showcase-ground-text: var(--color-foreground);
4065
+ --el-showcase-ground-muted: color-mix(in srgb, var(--color-foreground) 68%, var(--color-canvas));
4066
+ --el-showcase-ground-raised: color-mix(in srgb, var(--color-canvas) 86%, var(--color-foreground));
4067
+ --el-showcase-ground-rule: color-mix(in srgb, var(--color-canvas) 70%, var(--color-foreground));
4068
+ --el-showcase-highlight: color-mix(in srgb, var(--color-accent) 70%, var(--color-foreground));
4069
+ --el-showcase-decision: var(--color-accent);
4070
+ --el-showcase-decision-text: var(--color-background);
4071
+ --el-showcase-decision-ink: color-mix(in srgb, var(--color-accent) 80%, var(--color-foreground));
4072
+ --el-showcase-record: var(--color-accent-teal);
3924
4073
  }
3925
4074
 
3926
4075
  /* ═══════════════════════════════════════════════════════════════════════
@@ -4111,6 +4260,12 @@
4111
4260
  --el-status-in-review: var(--color-primary);
4112
4261
  --el-status-planning: var(--color-accent-teal);
4113
4262
  --el-type-design: var(--color-accent);
4263
+ /* 2026-10 redesign — the logo and showcase roles the motir and bright
4264
+ palettes override, restated so a scoped amethyst tile keeps the base. */
4265
+ --el-logo-mark: var(--color-primary-fill);
4266
+ --el-logo-tile: color-mix(in srgb, var(--color-primary-fill) 14%, var(--color-background));
4267
+ --el-showcase-highlight: color-mix(in srgb, var(--color-accent) 55%, var(--color-background));
4268
+ --el-showcase-decision: color-mix(in srgb, var(--color-accent) 70%, var(--color-background));
4114
4269
  }
4115
4270
 
4116
4271
  /* The base palette's DARK arm — only the tokens the global dark block
@@ -4148,6 +4303,12 @@
4148
4303
  --color-tint-sky: #1a2a3a;
4149
4304
  --color-tint-yellow: #3a341a;
4150
4305
  --el-sidebar-item-bg-hover: #222222;
4306
+ /* 2026-10 redesign — the dark logo and showcase roles, restated (see the
4307
+ light arm above). */
4308
+ --el-logo-mark: var(--color-primary);
4309
+ --el-logo-tile: color-mix(in srgb, var(--color-primary) 18%, var(--color-background));
4310
+ --el-showcase-highlight: color-mix(in srgb, var(--color-accent) 70%, var(--color-foreground));
4311
+ --el-showcase-decision: var(--color-accent);
4151
4312
  }
4152
4313
 
4153
4314
  /* The `motir` BASE type pairing, re-asserted (MOTIR-3933) — same reason as
@@ -4360,6 +4521,10 @@
4360
4521
  verified numerically + by rendered specimen, never eyeballed. See
4361
4522
  docs/palettes/motir.md for the colour-role reference. */
4362
4523
  [data-palette='motir'] {
4524
+ /* The logo, kept as Motir has it: the cool-blue primary (its fill is the
4525
+ ink CTA, not its identity hue) on a 28% wash of that blue. */
4526
+ --el-logo-mark: var(--color-primary);
4527
+ --el-logo-tile: color-mix(in srgb, var(--color-primary) 28%, var(--color-background));
4363
4528
  /* brand & primary — the high-contrast INK CTA + the single cool-blue accent.
4364
4529
  --color-primary is the accent AS text/icon/focus on a surface (the cool
4365
4530
  blue, AA on white & the slate surface); --color-primary-fill is the CTA
@@ -4470,6 +4635,15 @@
4470
4635
  every light surface. Set directly, as --el-sidebar-item-bg-hover is, since
4471
4636
  no Tier-0 source carries it. */
4472
4637
  --el-type-design: #746019;
4638
+ /* The showcase highlight — the one bright touch on motir.co's illustration
4639
+ ground. In Motir it is the palette's Sunglow yellow (the dark Design hue
4640
+ below), and the same in both themes because the showcase ground stays dark
4641
+ in both. Set directly, as --el-type-design is: Motir's yellow is a role
4642
+ value of this palette, not a Tier-0 source other palettes would carry. */
4643
+ --el-showcase-highlight: #ffd02f;
4644
+ /* Motir's decision field is its warm accent at full strength — dark ink on
4645
+ it is 4.9:1; the base mapping lightens the accent for darker palettes. */
4646
+ --el-showcase-decision: var(--color-accent);
4473
4647
  /* progress bars take the warm accent instead of the ink CTA fill */
4474
4648
  --el-progress-fill: var(--color-accent);
4475
4649
  /* the editor's focus border / rings stay the blue focus hue — the accent they
@@ -4483,6 +4657,8 @@
4483
4657
  brighten to clear AA on near-black. */
4484
4658
  [data-theme='dark'] [data-palette='motir']:not([data-theme]),
4485
4659
  [data-palette='motir'][data-theme='dark'] {
4660
+ --el-logo-mark: var(--color-primary); /* parity with the light block */
4661
+ --el-logo-tile: color-mix(in srgb, var(--color-primary) 28%, var(--color-background));
4486
4662
  --color-background: #0c0d0f; /* stark cool near-black canvas */
4487
4663
  --color-foreground: #edeef0;
4488
4664
  --color-surface: #18191c; /* cool slate section */
@@ -4561,6 +4737,8 @@
4561
4737
  palette's dark --color-primary, Miro Sunglow #ffd02f: ΔE2000 27.5 from its
4562
4738
  nearest glyph neighbour, 10.0:1 or better on every dark surface. */
4563
4739
  --el-type-design: #ffd02f;
4740
+ --el-showcase-highlight: #ffd02f; /* see the light block */
4741
+ --el-showcase-decision: var(--color-accent);
4564
4742
  --el-progress-fill: var(--color-accent);
4565
4743
  --el-editor-focus: var(--color-primary);
4566
4744
  }
@@ -5002,6 +5180,9 @@
5002
5180
  clears WCAG AA (≥4.5 text; ≥3.0 icon/UI) in BOTH themes, verified
5003
5181
  numerically. See docs/palettes/amber.md. */
5004
5182
  [data-palette='amber'] {
5183
+ /* The logo: this palette's identity hue is bright, so its mark sits on a
5184
+ dark tile (the palette's ink) rather than a pale wash of itself. */
5185
+ --el-logo-tile: var(--color-foreground);
5005
5186
  /* brand & primary — Binance Gold. The FILL carries DARK ink labels (yellow
5006
5187
  trap); --color-primary is a darkened gold used AS text/icon on a surface. */
5007
5188
  --color-primary: #7d6000; /* darkened gold as text/icon (5.92:1 on white — MOTIR-3774) */
@@ -5075,6 +5256,11 @@
5075
5256
  #0ECB81 / sell-red #F6465D. */
5076
5257
  [data-theme='dark'] [data-palette='amber']:not([data-theme]),
5077
5258
  [data-palette='amber'][data-theme='dark'] {
5259
+ --el-logo-tile: color-mix(
5260
+ in srgb,
5261
+ var(--color-primary) 18%,
5262
+ var(--color-background)
5263
+ ); /* parity with the light block */
5078
5264
  --color-background: #0b0e11; /* Binance deepest trading-floor black */
5079
5265
  --color-foreground: #eaecef;
5080
5266
  --color-surface: #1e2329; /* Binance "Shark" card surface */
@@ -5149,6 +5335,9 @@
5149
5335
  clears WCAG AA in BOTH themes, verified numerically. See
5150
5336
  docs/palettes/sienna.md. */
5151
5337
  [data-palette='sienna'] {
5338
+ /* The logo: this palette's identity hue is bright, so its mark sits on a
5339
+ dark tile (the palette's ink) rather than a pale wash of itself. */
5340
+ --el-logo-tile: var(--color-foreground);
5152
5341
  /* brand & primary — Mistral's flame. The FILL is Mistral Orange #fa520f with
5153
5342
  DARK ink labels; --color-primary is a darkened flame used AS text/icon. */
5154
5343
  --color-primary: #b53b09; /* darkened Mistral flame as text/icon (5.60:1 on the cream — MOTIR-3774) */
@@ -5231,6 +5420,11 @@
5231
5420
  to read as text, the fill a bright flame with dark-ink labels. */
5232
5421
  [data-theme='dark'] [data-palette='sienna']:not([data-theme]),
5233
5422
  [data-palette='sienna'][data-theme='dark'] {
5423
+ --el-logo-tile: color-mix(
5424
+ in srgb,
5425
+ var(--color-primary) 18%,
5426
+ var(--color-background)
5427
+ ); /* parity with the light block */
5234
5428
  --color-background: #15120d; /* warm near-black canvas (from Mistral Black) */
5235
5429
  --color-foreground: #f5efe2;
5236
5430
  --color-surface: #1f1d17;
@@ -5451,6 +5645,9 @@
5451
5645
  clears WCAG AA in BOTH themes, verified numerically. See
5452
5646
  docs/palettes/citrine.md. */
5453
5647
  [data-palette='citrine'] {
5648
+ /* The logo: this palette's identity hue is bright, so its mark sits on a
5649
+ dark tile (the palette's ink) rather than a pale wash of itself. */
5650
+ --el-logo-tile: var(--color-foreground);
5454
5651
  /* brand & primary — Miro Sunglow yellow (yellow-500). FILL carries DARK
5455
5652
  Stratos-ink labels (yellow trap); --color-primary is a documented dark
5456
5653
  yellow step (yellow-700) used AS text/icon on a surface. */
@@ -5549,6 +5746,11 @@
5549
5746
  clear AA on the dark canvas. All values are documented Mirotone steps. */
5550
5747
  [data-theme='dark'] [data-palette='citrine']:not([data-theme]),
5551
5748
  [data-palette='citrine'][data-theme='dark'] {
5749
+ --el-logo-tile: color-mix(
5750
+ in srgb,
5751
+ var(--color-primary) 18%,
5752
+ var(--color-background)
5753
+ ); /* parity with the light block */
5552
5754
  --color-background: #090909; /* Miro black */
5553
5755
  --color-foreground: #f6f7f9; /* gray-50 */
5554
5756
  --color-surface: #1a1b1e; /* gray-900 */
@@ -5639,6 +5841,9 @@
5639
5841
  clears WCAG AA in BOTH themes, verified numerically. See
5640
5842
  docs/palettes/candy.md. */
5641
5843
  [data-palette='candy'] {
5844
+ /* The logo: this palette's identity hue is bright, so its mark sits on a
5845
+ dark tile (the palette's ink) rather than a pale wash of itself. */
5846
+ --el-logo-tile: var(--color-foreground);
5642
5847
  /* brand & primary — a LIGHT bubblegum pink (Radix Pink). FILL is a light pink
5643
5848
  with DARK berry labels; --color-primary is the Pink-11 text step. */
5644
5849
  --color-primary: #b72682; /* Radix Pink-11 88% toward Pink-12 (5.81:1 on white — MOTIR-3774) */
@@ -5713,6 +5918,11 @@
5713
5918
  All values are documented Radix dark steps. */
5714
5919
  [data-theme='dark'] [data-palette='candy']:not([data-theme]),
5715
5920
  [data-palette='candy'][data-theme='dark'] {
5921
+ --el-logo-tile: color-mix(
5922
+ in srgb,
5923
+ var(--color-primary) 18%,
5924
+ var(--color-background)
5925
+ ); /* parity with the light block */
5716
5926
  --color-background: #191117; /* Radix Pink dark-1 — pink-tinted black */
5717
5927
  --color-foreground: #eeeef0; /* Mauve dark-12 */
5718
5928
  --color-surface: #37172f; /* Pink dark-3 — candy-plum section */