@cascivo/themes 0.1.0 → 0.2.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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # @cascivo/themes
4
4
 
5
- > First-party cascade themes: light, dark, warm, flat, minimal, midnight, pastel, brutalist, corporate, terminal
5
+ > First-party cascivo themes: light, dark, warm, flat, minimal, midnight, pastel, brutalist, corporate, terminal
6
6
 
7
7
  [cascivo.com](https://cascivo.com) · [Docs](https://docs.cascivo.com) · [Storybook](https://storybook.cascivo.com) · [GitHub](https://github.com/urbanisierung/cascivo)
8
8
 
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@cascivo/themes",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "private": false,
5
- "description": "First-party cascade themes: light, dark, warm, flat, minimal, midnight, pastel, brutalist, corporate, terminal",
5
+ "description": "First-party cascivo themes: light, dark, warm, flat, minimal, midnight, pastel, brutalist, corporate, terminal",
6
6
  "keywords": [
7
7
  "cascivo",
8
8
  "css",
@@ -27,16 +27,30 @@
27
27
  "!src/**/*.test.ts"
28
28
  ],
29
29
  "exports": {
30
+ "./all": "./src/all.css",
31
+ "./all.css": "./src/all.css",
32
+ "./base": "./src/base.css",
33
+ "./base.css": "./src/base.css",
30
34
  "./light": "./src/light.css",
35
+ "./light.css": "./src/light.css",
31
36
  "./dark": "./src/dark.css",
37
+ "./dark.css": "./src/dark.css",
32
38
  "./warm": "./src/warm.css",
39
+ "./warm.css": "./src/warm.css",
33
40
  "./flat": "./src/flat.css",
41
+ "./flat.css": "./src/flat.css",
34
42
  "./minimal": "./src/minimal.css",
43
+ "./minimal.css": "./src/minimal.css",
35
44
  "./midnight": "./src/midnight.css",
45
+ "./midnight.css": "./src/midnight.css",
36
46
  "./pastel": "./src/pastel.css",
47
+ "./pastel.css": "./src/pastel.css",
37
48
  "./brutalist": "./src/brutalist.css",
49
+ "./brutalist.css": "./src/brutalist.css",
38
50
  "./corporate": "./src/corporate.css",
39
- "./terminal": "./src/terminal.css"
51
+ "./corporate.css": "./src/corporate.css",
52
+ "./terminal": "./src/terminal.css",
53
+ "./terminal.css": "./src/terminal.css"
40
54
  },
41
55
  "publishConfig": {
42
56
  "access": "public",
@@ -45,8 +59,8 @@
45
59
  "devDependencies": {
46
60
  "@types/node": "^25",
47
61
  "typescript": "^5",
48
- "vite-plus": "^0.1.24",
49
- "@cascivo/tokens": "0.1.0"
62
+ "vite-plus": "^0.2.1",
63
+ "@cascivo/tokens": "0.2.0"
50
64
  },
51
65
  "peerDependencies": {
52
66
  "@cascivo/tokens": ">=0.0.0"
package/src/all.css ADDED
@@ -0,0 +1,18 @@
1
+ /* cascivo — All-in-one theming bundle */
2
+ /* The single-import path for the common light + dark setup (#3):
3
+
4
+ @import '@cascivo/themes/all';
5
+
6
+ It loads @cascivo/tokens exactly ONCE (here), then the base layer, then the
7
+ light and dark themes (each scoped by [data-theme]). The per-theme files
8
+ below also self-import @cascivo/tokens for standalone use; bundlers and
9
+ browsers dedupe the identical @import URL, so tokens are still emitted once.
10
+
11
+ Layer order (first appearance, lowest → highest priority):
12
+ cascivo.tokens < cascivo.base < cascivo.theme ( < cascivo.component )
13
+ Component CSS (@cascivo/react/styles.css) adds cascivo.component on top. */
14
+
15
+ @import '@cascivo/tokens';
16
+ @import './base.css';
17
+ @import './light.css';
18
+ @import './dark.css';
package/src/base.css ADDED
@@ -0,0 +1,23 @@
1
+ /* cascivo — Base Layer */
2
+ /* The one rule that activates the shipped font token (#6): applies
3
+ --cascivo-font-sans + a sane line-height/color/background to the document
4
+ root so plain consumer markup (headings, raw text, prose pages) renders in
5
+ the sans stack instead of falling back to the browser serif default.
6
+
7
+ This is NOT a full reset — it is the minimal base every consumer who imports
8
+ a theme should get for free. It lives in @layer cascivo.base, which sits
9
+ BELOW cascivo.theme and cascivo.component, so themes and components (and any
10
+ unlayered consumer CSS) always win.
11
+
12
+ Uses the canonical color tokens (foreground/background). Those are defined by
13
+ the themes, and --cascivo-font-sans by @cascivo/tokens; pair this with a theme
14
+ (or import @cascivo/themes/all). */
15
+
16
+ @layer cascivo.base {
17
+ html {
18
+ font-family: var(--cascivo-font-sans);
19
+ line-height: var(--cascivo-leading-normal, 1.5);
20
+ color: var(--cascivo-color-foreground);
21
+ background-color: var(--cascivo-color-background);
22
+ }
23
+ }
package/src/brutalist.css CHANGED
@@ -1,9 +1,9 @@
1
- /* Cascade — Brutalist Theme */
1
+ /* cascivo — Brutalist Theme */
2
2
  /* Neo-brutalism: cream background, zero radius, thick borders, hard offset shadows */
3
3
 
4
4
  @import '@cascivo/tokens';
5
5
 
6
- @layer cascade.theme {
6
+ @layer cascivo.theme {
7
7
  [data-theme='brutalist'] {
8
8
  color-scheme: light;
9
9
 
@@ -60,6 +60,7 @@
60
60
  --cascivo-color-info-subtle: oklch(0.95 0.05 250);
61
61
  --cascivo-color-success-foreground: oklch(0.52 0.18 145);
62
62
  --cascivo-color-warning-foreground: oklch(0.5 0.15 75);
63
+ --cascivo-color-destructive-foreground: oklch(0.4 0.2 22);
63
64
 
64
65
  /* ── Radius — zero ───────────────────────────────── */
65
66
  --cascivo-radius-base: 0;
package/src/corporate.css CHANGED
@@ -1,9 +1,9 @@
1
- /* Cascade — Corporate Theme */
1
+ /* cascivo — Corporate Theme */
2
2
  /* Enterprise/data-dense, crisp 2px radius, conservative blue, tight hairlines */
3
3
 
4
4
  @import '@cascivo/tokens';
5
5
 
6
- @layer cascade.theme {
6
+ @layer cascivo.theme {
7
7
  [data-theme='corporate'] {
8
8
  color-scheme: light;
9
9
 
@@ -60,6 +60,7 @@
60
60
  --cascivo-color-info-subtle: oklch(0.95 0.03 255);
61
61
  --cascivo-color-success-foreground: oklch(0.45 0.14 145);
62
62
  --cascivo-color-warning-foreground: oklch(0.5 0.13 75);
63
+ --cascivo-color-destructive-foreground: oklch(0.448 0.17 22);
63
64
 
64
65
  /* ── Radius — 2px ────────────────────────────────── */
65
66
  --cascivo-radius-base: 0.125rem;
package/src/dark.css CHANGED
@@ -1,9 +1,10 @@
1
- /* Cascade — Dark Theme */
1
+ /* cascivo — Dark Theme */
2
2
  /* Bold/editorial, high contrast, developer-cool */
3
3
 
4
+ /* Self-imports tokens for standalone use; deduped by URL when combined (see ./all.css). */
4
5
  @import '@cascivo/tokens';
5
6
 
6
- @layer cascade.theme {
7
+ @layer cascivo.theme {
7
8
  [data-theme='dark'] {
8
9
  color-scheme: dark;
9
10
 
@@ -54,6 +55,7 @@
54
55
  /* Foreground-safe variants: bright for text on dark backgrounds (WCAG AA ≥4.5:1) */
55
56
  --cascivo-color-success-foreground: oklch(0.72 0.13 145);
56
57
  --cascivo-color-warning-foreground: oklch(0.82 0.13 75);
58
+ --cascivo-color-destructive-foreground: oklch(0.85 0.12 22);
57
59
 
58
60
  /* ── Primary — inverted monochrome ── */
59
61
  --cascivo-color-primary: oklch(0.922 0 0);
package/src/flat.css CHANGED
@@ -1,9 +1,9 @@
1
- /* Cascade — Flat Theme */
1
+ /* cascivo — Flat Theme */
2
2
  /* Zero shadows, zero radius, high-contrast borders, vivid green accent */
3
3
 
4
4
  @import '@cascivo/tokens';
5
5
 
6
- @layer cascade.theme {
6
+ @layer cascivo.theme {
7
7
  [data-theme='flat'] {
8
8
  color-scheme: light;
9
9
 
@@ -84,6 +84,7 @@
84
84
  --cascivo-color-info-subtle: oklch(0.95 0.04 250);
85
85
  --cascivo-color-success-foreground: oklch(0.52 0.18 145);
86
86
  --cascivo-color-warning-foreground: oklch(0.5 0.14 75);
87
+ --cascivo-color-destructive-foreground: oklch(0.42 0.19 22);
87
88
 
88
89
  --cascivo-radius-component: 0;
89
90
  --cascivo-radius-button: 0;
package/src/light.css CHANGED
@@ -1,9 +1,10 @@
1
- /* Cascade — Light Theme */
1
+ /* cascivo — Light Theme */
2
2
  /* Minimal/sharp, neutral grays, clean lines */
3
3
 
4
+ /* Self-imports tokens for standalone use; deduped by URL when combined (see ./all.css). */
4
5
  @import '@cascivo/tokens';
5
6
 
6
- @layer cascade.theme {
7
+ @layer cascivo.theme {
7
8
  [data-theme='light'],
8
9
  :root:not([data-theme]) {
9
10
  color-scheme: light;
@@ -64,6 +65,7 @@
64
65
  /* Foreground-safe variants: darker for text on light backgrounds (WCAG AA ≥4.5:1) */
65
66
  --cascivo-color-success-foreground: oklch(0.45 0.14 145);
66
67
  --cascivo-color-warning-foreground: oklch(0.5 0.14 75);
68
+ --cascivo-color-destructive-foreground: oklch(0.448 0.17 22);
67
69
 
68
70
  /* ── Radius — one knob; semantic scale derives in tokens ── */
69
71
  --cascivo-radius-base: 0.375rem; /* 6px */
package/src/midnight.css CHANGED
@@ -1,9 +1,9 @@
1
- /* Cascade — Midnight Theme */
1
+ /* cascivo — Midnight Theme */
2
2
  /* Premium dark, deep indigo-black, violet accent, soft colored glow */
3
3
 
4
4
  @import '@cascivo/tokens';
5
5
 
6
- @layer cascade.theme {
6
+ @layer cascivo.theme {
7
7
  [data-theme='midnight'] {
8
8
  color-scheme: dark;
9
9
 
@@ -60,6 +60,7 @@
60
60
  --cascivo-color-info-subtle: oklch(0.7 0.22 290 / 0.1);
61
61
  --cascivo-color-success-foreground: oklch(0.72 0.13 145);
62
62
  --cascivo-color-warning-foreground: oklch(0.82 0.13 75);
63
+ --cascivo-color-destructive-foreground: oklch(0.85 0.12 22);
63
64
 
64
65
  /* ── Radius — 10px ───────────────────────────────── */
65
66
  --cascivo-radius-base: 0.625rem;
package/src/minimal.css CHANGED
@@ -1,9 +1,9 @@
1
- /* Cascade — Minimal Theme */
1
+ /* cascivo — Minimal Theme */
2
2
  /* Very subtle shadows, rounder radius, near-invisible borders, monochrome accent */
3
3
 
4
4
  @import '@cascivo/tokens';
5
5
 
6
- @layer cascade.theme {
6
+ @layer cascivo.theme {
7
7
  [data-theme='minimal'] {
8
8
  color-scheme: light;
9
9
 
@@ -84,6 +84,7 @@
84
84
  --cascivo-color-info-subtle: oklch(0.96 0.025 250);
85
85
  --cascivo-color-success-foreground: oklch(0.45 0.13 145);
86
86
  --cascivo-color-warning-foreground: oklch(0.5 0.12 75);
87
+ --cascivo-color-destructive-foreground: oklch(0.448 0.17 22);
87
88
 
88
89
  --cascivo-radius-component: var(--cascivo-radius-base);
89
90
  --cascivo-radius-button: var(--cascivo-radius-base);
package/src/pastel.css CHANGED
@@ -1,9 +1,9 @@
1
- /* Cascade — Pastel Theme */
1
+ /* cascivo — Pastel Theme */
2
2
  /* Playful/consumer, soft candy palette, pill controls, diffuse shadows */
3
3
 
4
4
  @import '@cascivo/tokens';
5
5
 
6
- @layer cascade.theme {
6
+ @layer cascivo.theme {
7
7
  [data-theme='pastel'] {
8
8
  color-scheme: light;
9
9
 
@@ -60,6 +60,7 @@
60
60
  --cascivo-color-info-subtle: oklch(0.96 0.04 350);
61
61
  --cascivo-color-success-foreground: oklch(0.46 0.13 165);
62
62
  --cascivo-color-warning-foreground: oklch(0.5 0.13 75);
63
+ --cascivo-color-destructive-foreground: oklch(0.448 0.17 22);
63
64
 
64
65
  /* ── Radius — 16px pill ──────────────────────────── */
65
66
  --cascivo-radius-base: 1rem;
package/src/terminal.css CHANGED
@@ -1,9 +1,9 @@
1
- /* Cascade — Terminal Theme */
1
+ /* cascivo — Terminal Theme */
2
2
  /* Developer/CLI, phosphor green on near-black, zero radius, green glow */
3
3
 
4
4
  @import '@cascivo/tokens';
5
5
 
6
- @layer cascade.theme {
6
+ @layer cascivo.theme {
7
7
  [data-theme='terminal'] {
8
8
  color-scheme: dark;
9
9
 
@@ -60,6 +60,7 @@
60
60
  --cascivo-color-info-subtle: oklch(0.82 0.2 145 / 0.1);
61
61
  --cascivo-color-success-foreground: oklch(0.82 0.2 145);
62
62
  --cascivo-color-warning-foreground: oklch(0.82 0.16 75);
63
+ --cascivo-color-destructive-foreground: oklch(0.82 0.15 22);
63
64
 
64
65
  /* ── Radius — zero ───────────────────────────────── */
65
66
  --cascivo-radius-base: 0;
package/src/warm.css CHANGED
@@ -1,9 +1,9 @@
1
- /* Cascade — Warm Theme */
1
+ /* cascivo — Warm Theme */
2
2
  /* Organic/approachable, warm neutrals, rounded */
3
3
 
4
4
  @import '@cascivo/tokens';
5
5
 
6
- @layer cascade.theme {
6
+ @layer cascivo.theme {
7
7
  [data-theme='warm'] {
8
8
  color-scheme: light;
9
9
 
@@ -60,6 +60,7 @@
60
60
  --cascivo-color-info-subtle: var(--cascivo-blue-50);
61
61
  --cascivo-color-success-foreground: oklch(0.45 0.14 145);
62
62
  --cascivo-color-warning-foreground: oklch(0.5 0.14 75);
63
+ --cascivo-color-destructive-foreground: oklch(0.448 0.17 22);
63
64
 
64
65
  /* ── Radius — one knob, warmer = rounder (8px) ────── */
65
66
  --cascivo-radius-base: 0.5rem;