@aortl/admin-css 0.8.0 → 0.9.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aortl/admin-css",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Pre-built CSS design system. Drop in via <link> and use semantic class names.",
5
5
  "keywords": [
6
6
  "components",
@@ -32,6 +32,8 @@
32
32
  "./admin.min.css": "./dist/admin.min.css",
33
33
  "./admin.scoped.css": "./dist/admin.scoped.css",
34
34
  "./admin.scoped.min.css": "./dist/admin.scoped.min.css",
35
+ "./admin.utilities.css": "./dist/admin.utilities.css",
36
+ "./admin.utilities.min.css": "./dist/admin.utilities.min.css",
35
37
  "./src/*": "./src/*"
36
38
  },
37
39
  "publishConfig": {
@@ -46,9 +48,11 @@
46
48
  "vitest": "4.1.6"
47
49
  },
48
50
  "scripts": {
49
- "build": "pnpm build:dev && pnpm build:min && pnpm build:scoped",
51
+ "build": "pnpm build:dev && pnpm build:min && pnpm build:utilities && pnpm build:utilities:min && pnpm build:scoped",
50
52
  "build:dev": "tailwindcss -i ./src/admin.css -o ./dist/admin.css",
51
53
  "build:min": "tailwindcss -i ./src/admin.css -o ./dist/admin.min.css --minify",
54
+ "build:utilities": "tailwindcss -i ./src/utilities.css -o ./dist/admin.utilities.css",
55
+ "build:utilities:min": "tailwindcss -i ./src/utilities.css -o ./dist/admin.utilities.min.css --minify",
52
56
  "build:scoped": "node ./scripts/wrap-scoped.mjs",
53
57
  "dev": "tailwindcss -i ./src/admin.css -o ./dist/admin.css --watch",
54
58
  "test": "vitest run",
package/src/admin.css CHANGED
@@ -1,3 +1,5 @@
1
+ @layer theme, base, components, utilities;
2
+
1
3
  @import "tailwindcss";
2
4
 
3
5
  @source "../../admin-react/src/**/*.{ts,tsx}";
@@ -0,0 +1,137 @@
1
+ @layer theme, base, components, utilities;
2
+
3
+ @reference "tailwindcss";
4
+ @reference "./theme.css";
5
+
6
+ @import "tailwindcss/utilities.css" layer(utilities);
7
+
8
+ /*
9
+ * Pre-built utility safelist for the no-build `admin.utilities.css` bundle.
10
+ *
11
+ * Curated to keep wire size tight — admin density rarely needs spacing
12
+ * above 32, text sizes above 2xl, or interactive variants on layout
13
+ * primitives. Each `@source inline(...)` is a brace-expanded class set;
14
+ * Tailwind expands the same way bash does (empty branches `{,foo}`
15
+ * include both the no-prefix and prefixed forms).
16
+ *
17
+ * Variant policy per family:
18
+ * - Layout (display, spacing, sizing, grid, ...) → responsive only
19
+ * - Visual (colors, borders, shadow, outline) → interactive only
20
+ * - Typography (weight, leading, ...) → neither
21
+ *
22
+ * Adding a utility: extend the matching line. Adding a new semantic
23
+ * color: update theme.css AND the color lines below.
24
+ */
25
+
26
+ /* Display, position, visibility — responsive */
27
+ @source inline(
28
+ "{,sm:,md:,lg:,xl:,2xl:}{block,inline-block,inline,flex,inline-flex,grid,inline-grid,contents,table,inline-table,table-row,table-cell,hidden,flow-root,list-item,static,fixed,absolute,relative,sticky,visible,invisible,collapse,sr-only,not-sr-only}"
29
+ );
30
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}overflow{,-x,-y}-{auto,hidden,visible,scroll,clip}");
31
+
32
+ /* Flex / grid — responsive */
33
+ @source inline(
34
+ "{,sm:,md:,lg:,xl:,2xl:}flex-{row,row-reverse,col,col-reverse,wrap,wrap-reverse,nowrap,1,auto,initial,none}"
35
+ );
36
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}{grow,grow-0,shrink,shrink-0}");
37
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}items-{start,end,center,baseline,stretch}");
38
+ @source inline(
39
+ "{,sm:,md:,lg:,xl:,2xl:}justify-{start,end,center,between,around,evenly,stretch}"
40
+ );
41
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}justify-items-{start,end,center,stretch}");
42
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}justify-self-{auto,start,end,center,stretch,baseline}");
43
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}self-{auto,start,end,center,stretch,baseline}");
44
+ @source inline(
45
+ "{,sm:,md:,lg:,xl:,2xl:}place-{items,content,self}-{start,end,center,stretch,between,around,evenly}"
46
+ );
47
+ @source inline(
48
+ "{,sm:,md:,lg:,xl:,2xl:}content-{start,end,center,between,around,evenly,stretch,normal}"
49
+ );
50
+ @source inline(
51
+ "{,sm:,md:,lg:,xl:,2xl:}{grid-cols,grid-rows}-{1,2,3,4,5,6,7,8,9,10,11,12,none,subgrid}"
52
+ );
53
+ @source inline(
54
+ "{,sm:,md:,lg:,xl:,2xl:}{col-span,row-span}-{1,2,3,4,5,6,7,8,9,10,11,12,full,auto}"
55
+ );
56
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}grid-flow-{row,col,dense,row-dense,col-dense}");
57
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}{auto-cols,auto-rows}-{auto,min,max,fr}");
58
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}order-{1,2,3,4,5,6,7,8,9,10,11,12,first,last,none}");
59
+
60
+ /* Spacing (padding, margin, gap) — responsive */
61
+ @source inline(
62
+ "{,sm:,md:,lg:,xl:,2xl:}{p,px,py,pt,pr,pb,pl,ps,pe,m,mx,my,mt,mr,mb,ml,ms,me,gap,gap-x,gap-y}-{0,0.5,1,1.5,2,3,4,6,8,12,16,20,24,32}"
63
+ );
64
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}{m,mx,my,mt,mr,mb,ml,ms,me}-auto");
65
+
66
+ /* Sizing (w, h, min-w, max-w, min-h, max-h) — responsive */
67
+ @source inline(
68
+ "{,sm:,md:,lg:,xl:,2xl:}{w,h,min-w,max-w,min-h,max-h}-{0,0.5,1,1.5,2,3,4,6,8,12,16,20,24,32,px,auto,full,screen,fit,min,max}"
69
+ );
70
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}{w,h}-{1/2,1/3,2/3,1/4,2/4,3/4}");
71
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}max-w-{xs,sm,md,lg,xl,2xl,3xl,4xl,5xl,6xl,7xl,prose,none}");
72
+
73
+ /* Text size + align — responsive */
74
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}text-{xs,sm,base,lg,xl,2xl}");
75
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}text-{left,center,right,justify,start,end}");
76
+
77
+ /* Aspect ratio — responsive */
78
+ @source inline("{,sm:,md:,lg:,xl:,2xl:}aspect-{auto,square,video}");
79
+
80
+ /* Translate (x/y only — full transforms intentionally skipped) — responsive */
81
+ @source inline(
82
+ "{,sm:,md:,lg:,xl:,2xl:}translate-{x,y}-{0,0.5,1,1.5,2,3,4,6,8,12,16,20,24,32,1/2,full}"
83
+ );
84
+
85
+ /* Typography (non-size) — no variants */
86
+ @source inline("font-{thin,extralight,light,normal,medium,semibold,bold,extrabold,black}");
87
+ @source inline("font-{sans,mono,serif}");
88
+ @source inline("leading-{none,tight,snug,normal,relaxed,loose,3,4,5,6,7,8,9,10}");
89
+ @source inline("tracking-{tighter,tight,normal,wide,wider,widest}");
90
+ @source inline("text-{wrap,nowrap,balance,pretty}");
91
+ @source inline("{underline,overline,line-through,no-underline,truncate}");
92
+
93
+ /* Borders + rounded — interactive */
94
+ @source inline(
95
+ "{,hover:,focus:,focus-visible:,active:}border{,-x,-y,-t,-r,-b,-l}{,-0,-2,-4,-8}"
96
+ );
97
+ @source inline(
98
+ "{,hover:,focus:,focus-visible:,active:}border-{solid,dashed,dotted,double,hidden,none}"
99
+ );
100
+ @source inline(
101
+ "{,hover:,focus:,focus-visible:,active:}rounded{,-t,-r,-b,-l,-tl,-tr,-br,-bl}{,-none,-sm,-md,-lg,-xl,-2xl,-3xl,-full}"
102
+ );
103
+
104
+ /* Outline + ring — interactive */
105
+ @source inline("{,hover:,focus:,focus-visible:,active:}outline{,-0,-1,-2,-4,-8}");
106
+ @source inline(
107
+ "{,hover:,focus:,focus-visible:,active:}outline-{none,dashed,dotted,double,hidden}"
108
+ );
109
+ @source inline("{,hover:,focus:,focus-visible:,active:}outline-offset-{0,1,2,4,8}");
110
+ @source inline("{,hover:,focus:,focus-visible:,active:}ring{,-0,-1,-2,-4,-8}");
111
+ @source inline("{,hover:,focus:,focus-visible:,active:}ring-inset");
112
+
113
+ /* Shadow — interactive */
114
+ @source inline(
115
+ "{,hover:,focus:,focus-visible:,active:}shadow{,-2xs,-xs,-sm,-md,-lg,-xl,-2xl,-inner,-none}"
116
+ );
117
+
118
+ /* Foundation semantic colors — interactive (kept in sync with theme.css) */
119
+ @source inline(
120
+ "{,hover:,focus:,focus-visible:,active:}{bg,text,border,outline,ring,shadow}-{surface,surface-muted,surface-strong,text,text-muted,border,border-strong}"
121
+ );
122
+
123
+ /* Accent semantic colors — each has base + -hover + -muted + -content (kept in sync with theme.css) */
124
+ @source inline(
125
+ "{,hover:,focus:,focus-visible:,active:}{bg,text,border,outline,ring,shadow}-{primary,system-accent,danger,success,warning,info}{,-hover,-muted,-content}"
126
+ );
127
+
128
+ /* Cursor + opacity — interactive */
129
+ @source inline(
130
+ "{,hover:,focus:,focus-visible:,active:}cursor-{auto,default,pointer,wait,text,move,help,not-allowed,none,progress,grab,grabbing,col-resize,row-resize,zoom-in,zoom-out}"
131
+ );
132
+ @source inline(
133
+ "{,hover:,focus:,focus-visible:,active:}opacity-{0,5,10,15,20,25,30,40,50,60,70,75,80,90,95,100}"
134
+ );
135
+
136
+ /* Z-index — no variants */
137
+ @source inline("z-{0,10,20,30,40,50,auto}");