@kanunilabs/datagrid-react 1.5.0 → 1.6.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 +12 -4
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +92 -11
- package/dist/index.d.ts +92 -11
- package/dist/index.js +2 -2
- package/dist/styles.css +98 -74
- package/dist/themes/all.css +1588 -0
- package/dist/themes/amber.css +41 -0
- package/dist/themes/aubergine.css +49 -0
- package/dist/themes/azure.css +41 -0
- package/dist/themes/burgundy.css +49 -0
- package/dist/themes/charcoal.css +49 -0
- package/dist/themes/contrast-dark.css +49 -0
- package/dist/themes/contrast-light.css +41 -0
- package/dist/themes/coral.css +41 -0
- package/dist/themes/corporate.css +41 -0
- package/dist/themes/deep-sea.css +49 -0
- package/dist/themes/editorial.css +41 -0
- package/dist/themes/ember.css +49 -0
- package/dist/themes/emerald.css +41 -0
- package/dist/themes/forest.css +49 -0
- package/dist/themes/glacier.css +41 -0
- package/dist/themes/graphite.css +49 -0
- package/dist/themes/indigo-night.css +49 -0
- package/dist/themes/indigo.css +41 -0
- package/dist/themes/ivory.css +41 -0
- package/dist/themes/lagoon.css +41 -0
- package/dist/themes/linen.css +41 -0
- package/dist/themes/midnight.css +49 -0
- package/dist/themes/mist.css +41 -0
- package/dist/themes/monochrome.css +41 -0
- package/dist/themes/onyx.css +49 -0
- package/dist/themes/orchid.css +41 -0
- package/dist/themes/porcelain.css +41 -0
- package/dist/themes/rose.css +41 -0
- package/dist/themes/sandstone.css +41 -0
- package/dist/themes/slate-night.css +49 -0
- package/dist/themes/slate.css +41 -0
- package/dist/themes/steel.css +49 -0
- package/dist/themes/stone.css +41 -0
- package/dist/themes/taupe.css +41 -0
- package/dist/themes/teal.css +41 -0
- package/dist/themes/terminal.css +49 -0
- package/package.json +9 -5
package/dist/styles.css
CHANGED
|
@@ -47,6 +47,11 @@
|
|
|
47
47
|
--dg-primary: #0369a1; /* sky-700 */
|
|
48
48
|
--dg-primary-soft: #e0f2fe; /* sky-100 */
|
|
49
49
|
--dg-focus-ring: #0369a1; /* matches the accent */
|
|
50
|
+
/* Find without filtering (P-FIND-01): every match tinted, the current one
|
|
51
|
+
stronger and ringed. Translucent, so selection and zebra show through. */
|
|
52
|
+
--dg-find-match-bg: color-mix(in srgb, #facc15 24%, transparent);
|
|
53
|
+
--dg-find-active-bg: color-mix(in srgb, #f59e0b 45%, transparent);
|
|
54
|
+
--dg-find-active-ring: #b45309;
|
|
50
55
|
/* Cell flash (P1.7). Translucent so the row's own background — striped,
|
|
51
56
|
selected, dirty — stays visible under the pulse rather than being
|
|
52
57
|
replaced by it. */
|
|
@@ -93,7 +98,7 @@
|
|
|
93
98
|
--dg-scrollbar-track: transparent;
|
|
94
99
|
|
|
95
100
|
/* ── Elevation ──
|
|
96
|
-
A flat theme sets these to `none`;
|
|
101
|
+
A flat theme sets these to `none`; Elevated raises them. */
|
|
97
102
|
--dg-shadow-popup: 0 10px 25px -5px rgba(15, 23, 42, 0.25);
|
|
98
103
|
--dg-shadow-popup-sm: 0 8px 24px rgba(15, 23, 42, 0.16);
|
|
99
104
|
--dg-shadow-menu: 0 12px 28px rgba(15, 23, 42, 0.22);
|
|
@@ -114,14 +119,14 @@
|
|
|
114
119
|
/* ── Line work ─────────────────────────────────────────────
|
|
115
120
|
Whole SHORTHANDS rather than a colour and a width, so a theme can drop a
|
|
116
121
|
line entirely (`none`) instead of only fading it. This is most of what
|
|
117
|
-
separates the presets:
|
|
118
|
-
rules rows only,
|
|
122
|
+
separates the presets: Ledger rules every column and every row, Elevated
|
|
123
|
+
rules rows only, Minimal keeps the rows faint and skips the columns. */
|
|
119
124
|
--dg-cell-border: 1px solid var(--dg-border);
|
|
120
125
|
--dg-row-border: 1px solid var(--dg-border);
|
|
121
126
|
--dg-header-cell-border: 1px solid var(--dg-border);
|
|
122
127
|
--dg-header-border: 1px solid var(--dg-border-strong);
|
|
123
128
|
/* A band's EDGE is not a column separator, so it gets its own token rather
|
|
124
|
-
than riding on `--dg-header-cell-border`.
|
|
129
|
+
than riding on `--dg-header-cell-border`. Minimal and Elevated set that one
|
|
125
130
|
to `none` on purpose — they rule rows, not columns — and the bands went
|
|
126
131
|
with it: "Where" and "Sales" sat over their columns with nothing marking
|
|
127
132
|
where either one started or stopped. Same argument the band row's
|
|
@@ -130,7 +135,7 @@
|
|
|
130
135
|
|
|
131
136
|
Mixed from the header TEXT rather than taken from a border token, because
|
|
132
137
|
both border tokens are too faint for a 24px vertical segment: measured on
|
|
133
|
-
|
|
138
|
+
Minimal against the header background, `--dg-border` gives 1.17:1 and
|
|
134
139
|
`--dg-border-strong` 1.39:1 — lines that are technically drawn and
|
|
135
140
|
practically invisible, i.e. a fix that changes nothing the user sees. The
|
|
136
141
|
mix lands near 2:1 and follows the theme in both light and dark, since the
|
|
@@ -206,6 +211,7 @@
|
|
|
206
211
|
--dg-primary: #38bdf8;
|
|
207
212
|
--dg-primary-soft: #0c4a6e;
|
|
208
213
|
--dg-focus-ring: #7dd3fc;
|
|
214
|
+
--dg-find-active-ring: #fbbf24;
|
|
209
215
|
/* Lifted for a dark surface: crimson on near-black reads as brown. */
|
|
210
216
|
--dg-note-marker: #f87171;
|
|
211
217
|
--dg-shadow-pinned: 2px 0 4px -2px rgba(0, 0, 0, 0.55);
|
|
@@ -487,7 +493,7 @@
|
|
|
487
493
|
out at 17.55px, so every wrapped row landed on a fractional boundary and
|
|
488
494
|
its 1px border rendered a pixel thick on some rows and two on others.
|
|
489
495
|
A token now, because a theme moves the body font under it — 18px is right
|
|
490
|
-
for 13px text and cramped for
|
|
496
|
+
for 13px text and cramped for Elevated's 14px. */
|
|
491
497
|
line-height: var(--dg-wrap-line-height);
|
|
492
498
|
}
|
|
493
499
|
|
|
@@ -1114,6 +1120,16 @@
|
|
|
1114
1120
|
outline-offset: -2px;
|
|
1115
1121
|
}
|
|
1116
1122
|
|
|
1123
|
+
/* Find without filtering (P-FIND-01): every match tinted, the current one
|
|
1124
|
+
stronger and outlined so it reads at a glance among the others. */
|
|
1125
|
+
.kanuni-datagrid-cell--find-match {
|
|
1126
|
+
background: var(--dg-find-match-bg);
|
|
1127
|
+
}
|
|
1128
|
+
.kanuni-datagrid-cell--find-active {
|
|
1129
|
+
background: var(--dg-find-active-bg);
|
|
1130
|
+
box-shadow: inset 0 0 0 2px var(--dg-find-active-ring);
|
|
1131
|
+
}
|
|
1132
|
+
|
|
1117
1133
|
.kanuni-datagrid-scroller:focus {
|
|
1118
1134
|
outline: none;
|
|
1119
1135
|
}
|
|
@@ -1529,6 +1545,14 @@
|
|
|
1529
1545
|
overflow-wrap: anywhere;
|
|
1530
1546
|
}
|
|
1531
1547
|
|
|
1548
|
+
/* An interactive tooltip (P-TOOL-01) takes the pointer: its text can be
|
|
1549
|
+
selected and a link in it clicked. The grace period in the hook lets the
|
|
1550
|
+
pointer cross the gap from the cell without closing it. */
|
|
1551
|
+
.kanuni-datagrid-tooltip--interactive {
|
|
1552
|
+
pointer-events: auto;
|
|
1553
|
+
user-select: text;
|
|
1554
|
+
}
|
|
1555
|
+
|
|
1532
1556
|
.kanuni-datagrid-filter-popup {
|
|
1533
1557
|
position: fixed;
|
|
1534
1558
|
z-index: 1000;
|
|
@@ -2539,10 +2563,10 @@
|
|
|
2539
2563
|
─────────────────────────────────────────────────────────────
|
|
2540
2564
|
Six presets, each in a light and a dark palette, each at three densities.
|
|
2541
2565
|
Nothing here is copied from a third-party stylesheet: every rule is a
|
|
2542
|
-
KanuniLabs class overriding a KanuniLabs --dg-* token
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2566
|
+
KanuniLabs class overriding a KanuniLabs --dg-* token, and the names say
|
|
2567
|
+
what each theme does (minimal, ledger, elevated, framed). Until 2026-10-11
|
|
2568
|
+
four of them carried names another grid vendor also uses for its themes;
|
|
2569
|
+
they were renamed so nothing public reads as borrowed.
|
|
2546
2570
|
|
|
2547
2571
|
── How a theme is expressed ───────────────────────────────
|
|
2548
2572
|
A theme is a token override and (almost) nothing else. That is the whole
|
|
@@ -2565,15 +2589,15 @@
|
|
|
2565
2589
|
───────────────────────────────────────────────────────────── */
|
|
2566
2590
|
|
|
2567
2591
|
/* ═══════════════════════════════════════════════════════════
|
|
2568
|
-
|
|
2592
|
+
MINIMAL — modern, minimal chrome
|
|
2569
2593
|
═══════════════════════════════════════════════════════════
|
|
2570
2594
|
The least furniture that still reads as a table: no column separators at
|
|
2571
2595
|
all, hairline row rules, and a header that is the same white as the body,
|
|
2572
2596
|
separated only by one firm line. Generous radii. For product UIs where the
|
|
2573
2597
|
grid sits among cards rather than inside a terminal. */
|
|
2574
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
2575
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
2576
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
2598
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-minimal,
|
|
2599
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-minimal,
|
|
2600
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-minimal {
|
|
2577
2601
|
--dg-bg: #ffffff;
|
|
2578
2602
|
--dg-surface: #ffffff;
|
|
2579
2603
|
--dg-surface-header: #ffffff;
|
|
@@ -2618,9 +2642,9 @@
|
|
|
2618
2642
|
--dg-chrome-padding-y: 8px;
|
|
2619
2643
|
}
|
|
2620
2644
|
|
|
2621
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
2622
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
2623
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
2645
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-minimal.kanuni-datagrid-dark,
|
|
2646
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-minimal.kanuni-datagrid-dark,
|
|
2647
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-minimal.kanuni-datagrid-dark {
|
|
2624
2648
|
--dg-bg: #0d1117;
|
|
2625
2649
|
--dg-surface: #0d1117;
|
|
2626
2650
|
--dg-surface-header: #0d1117;
|
|
@@ -2641,14 +2665,14 @@
|
|
|
2641
2665
|
}
|
|
2642
2666
|
|
|
2643
2667
|
/* ═══════════════════════════════════════════════════════════
|
|
2644
|
-
|
|
2668
|
+
LEDGER — dense, ruled, financial
|
|
2645
2669
|
═══════════════════════════════════════════════════════════
|
|
2646
2670
|
Every column and every row is ruled, the type is small, the padding is
|
|
2647
2671
|
tight and the corners are nearly square. Built for the case where the grid
|
|
2648
2672
|
IS the application and the user is counting rows on screen. */
|
|
2649
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
2650
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
2651
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
2673
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-ledger,
|
|
2674
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-ledger,
|
|
2675
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-ledger {
|
|
2652
2676
|
--dg-bg: #ffffff;
|
|
2653
2677
|
--dg-surface: #ffffff;
|
|
2654
2678
|
--dg-surface-header: #f2f4f6;
|
|
@@ -2703,9 +2727,9 @@
|
|
|
2703
2727
|
--dg-chrome-padding-y: 4px;
|
|
2704
2728
|
}
|
|
2705
2729
|
|
|
2706
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
2707
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
2708
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
2730
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-ledger.kanuni-datagrid-dark,
|
|
2731
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-ledger.kanuni-datagrid-dark,
|
|
2732
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-ledger.kanuni-datagrid-dark {
|
|
2709
2733
|
--dg-bg: #1a2029;
|
|
2710
2734
|
--dg-surface: #1a2029;
|
|
2711
2735
|
--dg-surface-header: #232b36;
|
|
@@ -2726,14 +2750,14 @@
|
|
|
2726
2750
|
}
|
|
2727
2751
|
|
|
2728
2752
|
/* ═══════════════════════════════════════════════════════════
|
|
2729
|
-
|
|
2753
|
+
ELEVATED — tall, quiet lines, real elevation
|
|
2730
2754
|
═══════════════════════════════════════════════════════════
|
|
2731
2755
|
Rows only, no column rules; larger rhythm; a header set in medium weight
|
|
2732
2756
|
with open tracking rather than bold; pill-shaped controls; and shadows that
|
|
2733
2757
|
actually lift. The one preset whose type scale grows rather than shrinks. */
|
|
2734
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
2735
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
2736
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
2758
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-elevated,
|
|
2759
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-elevated,
|
|
2760
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-elevated {
|
|
2737
2761
|
--dg-bg: #ffffff;
|
|
2738
2762
|
--dg-surface: #ffffff;
|
|
2739
2763
|
--dg-surface-header: #ffffff;
|
|
@@ -2785,9 +2809,9 @@
|
|
|
2785
2809
|
--dg-chrome-padding-y: 10px;
|
|
2786
2810
|
}
|
|
2787
2811
|
|
|
2788
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
2789
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
2790
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
2812
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-elevated.kanuni-datagrid-dark,
|
|
2813
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-elevated.kanuni-datagrid-dark,
|
|
2814
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-elevated.kanuni-datagrid-dark {
|
|
2791
2815
|
--dg-bg: #141218;
|
|
2792
2816
|
--dg-surface: #141218;
|
|
2793
2817
|
--dg-surface-header: #141218;
|
|
@@ -2809,14 +2833,14 @@
|
|
|
2809
2833
|
}
|
|
2810
2834
|
|
|
2811
2835
|
/* ═══════════════════════════════════════════════════════════
|
|
2812
|
-
|
|
2836
|
+
FRAMED — airy, fully framed, high-chroma accent
|
|
2813
2837
|
═══════════════════════════════════════════════════════════
|
|
2814
2838
|
The middle position: both sets of rules are drawn but kept light, the rhythm
|
|
2815
2839
|
is roomy, and the header is anchored by a doubled rule and a heavy weight so
|
|
2816
2840
|
it reads as a distinct band even though it shares the body's palette. */
|
|
2817
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
2818
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
2819
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
2841
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-framed,
|
|
2842
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-framed,
|
|
2843
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-framed {
|
|
2820
2844
|
--dg-bg: #ffffff;
|
|
2821
2845
|
--dg-surface: #ffffff;
|
|
2822
2846
|
--dg-surface-header: #f8f9fa;
|
|
@@ -2863,9 +2887,9 @@
|
|
|
2863
2887
|
--dg-chrome-padding-y: 7px;
|
|
2864
2888
|
}
|
|
2865
2889
|
|
|
2866
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
2867
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
2868
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
2890
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-framed.kanuni-datagrid-dark,
|
|
2891
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-framed.kanuni-datagrid-dark,
|
|
2892
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-framed.kanuni-datagrid-dark {
|
|
2869
2893
|
--dg-bg: #181d1f;
|
|
2870
2894
|
--dg-surface: #181d1f;
|
|
2871
2895
|
--dg-surface-header: #222628;
|
|
@@ -3033,7 +3057,7 @@
|
|
|
3033
3057
|
together — row, header, cell padding, control height, toolbar and pager
|
|
3034
3058
|
padding, filter field — so the proportions hold and the grid stays usable
|
|
3035
3059
|
rather than merely smaller. Each theme scales from its OWN normal, because a
|
|
3036
|
-
|
|
3060
|
+
Elevated row starts at 40px and a Ledger row at 25px; one shared compact
|
|
3037
3061
|
value would have flattened the presets into each other at that density.
|
|
3038
3062
|
|
|
3039
3063
|
The ROW HEIGHT is deliberately absent here: it is a core value the
|
|
@@ -3046,10 +3070,10 @@
|
|
|
3046
3070
|
base sheet's presets are root-only, which left popup controls at their
|
|
3047
3071
|
normal size whatever the grid was set to. */
|
|
3048
3072
|
|
|
3049
|
-
/* ──
|
|
3050
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
3051
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
3052
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
3073
|
+
/* ── Minimal ── */
|
|
3074
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-minimal.kanuni-datagrid-density-compact,
|
|
3075
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-minimal.kanuni-datagrid-density-compact,
|
|
3076
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-minimal.kanuni-datagrid-density-compact {
|
|
3053
3077
|
--dg-header-height: 30px;
|
|
3054
3078
|
--dg-cell-padding-x: 8px;
|
|
3055
3079
|
--dg-font-size: 12px;
|
|
@@ -3062,9 +3086,9 @@
|
|
|
3062
3086
|
--dg-chrome-padding-y: 4px;
|
|
3063
3087
|
}
|
|
3064
3088
|
|
|
3065
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
3066
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
3067
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
3089
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-minimal.kanuni-datagrid-density-comfortable,
|
|
3090
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-minimal.kanuni-datagrid-density-comfortable,
|
|
3091
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-minimal.kanuni-datagrid-density-comfortable {
|
|
3068
3092
|
--dg-header-height: 48px;
|
|
3069
3093
|
--dg-cell-padding-x: 16px;
|
|
3070
3094
|
--dg-font-size: 14px;
|
|
@@ -3077,10 +3101,10 @@
|
|
|
3077
3101
|
--dg-chrome-padding-y: 10px;
|
|
3078
3102
|
}
|
|
3079
3103
|
|
|
3080
|
-
/* ──
|
|
3081
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
3082
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
3083
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
3104
|
+
/* ── Ledger ── */
|
|
3105
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-ledger.kanuni-datagrid-density-compact,
|
|
3106
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-ledger.kanuni-datagrid-density-compact,
|
|
3107
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-ledger.kanuni-datagrid-density-compact {
|
|
3084
3108
|
--dg-header-height: 22px;
|
|
3085
3109
|
--dg-cell-padding-x: 4px;
|
|
3086
3110
|
--dg-font-size: 11px;
|
|
@@ -3093,9 +3117,9 @@
|
|
|
3093
3117
|
--dg-chrome-padding-y: 2px;
|
|
3094
3118
|
}
|
|
3095
3119
|
|
|
3096
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
3097
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
3098
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
3120
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-ledger.kanuni-datagrid-density-comfortable,
|
|
3121
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-ledger.kanuni-datagrid-density-comfortable,
|
|
3122
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-ledger.kanuni-datagrid-density-comfortable {
|
|
3099
3123
|
--dg-header-height: 36px;
|
|
3100
3124
|
--dg-cell-padding-x: 10px;
|
|
3101
3125
|
--dg-font-size: 13px;
|
|
@@ -3108,10 +3132,10 @@
|
|
|
3108
3132
|
--dg-chrome-padding-y: 6px;
|
|
3109
3133
|
}
|
|
3110
3134
|
|
|
3111
|
-
/* ──
|
|
3112
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
3113
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
3114
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
3135
|
+
/* ── Elevated ── */
|
|
3136
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-elevated.kanuni-datagrid-density-compact,
|
|
3137
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-elevated.kanuni-datagrid-density-compact,
|
|
3138
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-elevated.kanuni-datagrid-density-compact {
|
|
3115
3139
|
--dg-header-height: 36px;
|
|
3116
3140
|
--dg-cell-padding-x: 12px;
|
|
3117
3141
|
--dg-font-size: 13px;
|
|
@@ -3124,9 +3148,9 @@
|
|
|
3124
3148
|
--dg-chrome-padding-y: 6px;
|
|
3125
3149
|
}
|
|
3126
3150
|
|
|
3127
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
3128
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
3129
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
3151
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-elevated.kanuni-datagrid-density-comfortable,
|
|
3152
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-elevated.kanuni-datagrid-density-comfortable,
|
|
3153
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-elevated.kanuni-datagrid-density-comfortable {
|
|
3130
3154
|
--dg-header-height: 56px;
|
|
3131
3155
|
--dg-cell-padding-x: 20px;
|
|
3132
3156
|
--dg-font-size: 15px;
|
|
@@ -3139,10 +3163,10 @@
|
|
|
3139
3163
|
--dg-chrome-padding-y: 12px;
|
|
3140
3164
|
}
|
|
3141
3165
|
|
|
3142
|
-
/* ──
|
|
3143
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
3144
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
3145
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
3166
|
+
/* ── Framed ── */
|
|
3167
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-framed.kanuni-datagrid-density-compact,
|
|
3168
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-framed.kanuni-datagrid-density-compact,
|
|
3169
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-framed.kanuni-datagrid-density-compact {
|
|
3146
3170
|
--dg-header-height: 28px;
|
|
3147
3171
|
--dg-cell-padding-x: 8px;
|
|
3148
3172
|
--dg-font-size: 12px;
|
|
@@ -3155,9 +3179,9 @@
|
|
|
3155
3179
|
--dg-chrome-padding-y: 4px;
|
|
3156
3180
|
}
|
|
3157
3181
|
|
|
3158
|
-
.kanuni-datagrid-root.kanuni-datagrid-theme-
|
|
3159
|
-
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-
|
|
3160
|
-
.kanuni-datagrid-detached.kanuni-datagrid-theme-
|
|
3182
|
+
.kanuni-datagrid-root.kanuni-datagrid-theme-framed.kanuni-datagrid-density-comfortable,
|
|
3183
|
+
.kanuni-datagrid-enterprise.kanuni-datagrid-theme-framed.kanuni-datagrid-density-comfortable,
|
|
3184
|
+
.kanuni-datagrid-detached.kanuni-datagrid-theme-framed.kanuni-datagrid-density-comfortable {
|
|
3161
3185
|
--dg-header-height: 46px;
|
|
3162
3186
|
--dg-cell-padding-x: 16px;
|
|
3163
3187
|
--dg-font-size: 14px;
|
|
@@ -3263,17 +3287,17 @@
|
|
|
3263
3287
|
the edge element (there is exactly one per side, not one per cell) restores
|
|
3264
3288
|
it without bringing the column rules back.
|
|
3265
3289
|
|
|
3266
|
-
Every ruled preset —
|
|
3290
|
+
Every ruled preset — Ledger, Framed — needs nothing here: the seam is
|
|
3267
3291
|
already drawn by the cell borders they keep. */
|
|
3268
|
-
.kanuni-datagrid-theme-
|
|
3269
|
-
.kanuni-datagrid-theme-
|
|
3292
|
+
.kanuni-datagrid-theme-minimal .kanuni-datagrid-pin-edge-left,
|
|
3293
|
+
.kanuni-datagrid-theme-elevated .kanuni-datagrid-pin-edge-left,
|
|
3270
3294
|
.kanuni-datagrid-theme-kanuni .kanuni-datagrid-pin-edge-left,
|
|
3271
3295
|
.kanuni-datagrid-theme-kanuni-midnight .kanuni-datagrid-pin-edge-left {
|
|
3272
3296
|
border-inline-end: 1px solid var(--dg-border-strong);
|
|
3273
3297
|
}
|
|
3274
3298
|
|
|
3275
|
-
.kanuni-datagrid-theme-
|
|
3276
|
-
.kanuni-datagrid-theme-
|
|
3299
|
+
.kanuni-datagrid-theme-minimal .kanuni-datagrid-pin-edge-right,
|
|
3300
|
+
.kanuni-datagrid-theme-elevated .kanuni-datagrid-pin-edge-right,
|
|
3277
3301
|
.kanuni-datagrid-theme-kanuni .kanuni-datagrid-pin-edge-right,
|
|
3278
3302
|
.kanuni-datagrid-theme-kanuni-midnight .kanuni-datagrid-pin-edge-right {
|
|
3279
3303
|
border-inline-start: 1px solid var(--dg-border-strong);
|
|
@@ -3285,8 +3309,8 @@
|
|
|
3285
3309
|
A palette is a SECOND, independent axis: it changes the colours and nothing
|
|
3286
3310
|
else. The theme keeps deciding the structure — where the rules are drawn, how
|
|
3287
3311
|
tall a row is, how round a control is, how much the popups lift — so
|
|
3288
|
-
`theme="
|
|
3289
|
-
blues, and `theme="
|
|
3312
|
+
`theme="ledger" palette="nord"` is Ledger's dense ruled grid in Nord's arctic
|
|
3313
|
+
blues, and `theme="elevated" palette="nord"` is Elevated's tall airy one in
|
|
3290
3314
|
the same blues. Four themes and six palettes is twenty-four looks out of ten
|
|
3291
3315
|
class names, not twenty-four stylesheets.
|
|
3292
3316
|
|