@fui-org/fui-cli 0.2.0 → 0.3.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 +13 -1
- package/dist/fui.js +160 -43
- package/package.json +4 -2
- package/skills/fui/SKILL.md +131 -66
- package/skills/fui-skill/README.md +112 -0
- package/skills/fui-skill/SKILL.md +269 -0
- package/skills/fui-skill/assets/projectdefaultstyle.css +518 -0
- package/skills/fui-skill/design-md/airbnb/DESIGN.md +545 -0
- package/skills/fui-skill/design-md/airbnb/README.md +5 -0
- package/skills/fui-skill/design-md/airtable/DESIGN.md +554 -0
- package/skills/fui-skill/design-md/airtable/README.md +5 -0
- package/skills/fui-skill/design-md/apple/DESIGN.md +562 -0
- package/skills/fui-skill/design-md/apple/README.md +5 -0
- package/skills/fui-skill/design-md/asu/DESIGN.md +179 -0
- package/skills/fui-skill/design-md/asu/README.md +107 -0
- package/skills/fui-skill/design-md/binance/DESIGN.md +634 -0
- package/skills/fui-skill/design-md/binance/README.md +5 -0
- package/skills/fui-skill/design-md/bmw/DESIGN.md +544 -0
- package/skills/fui-skill/design-md/bmw/README.md +5 -0
- package/skills/fui-skill/design-md/bmw-m/DESIGN.md +503 -0
- package/skills/fui-skill/design-md/bmw-m/README.md +5 -0
- package/skills/fui-skill/design-md/bugatti/DESIGN.md +454 -0
- package/skills/fui-skill/design-md/bugatti/README.md +5 -0
- package/skills/fui-skill/design-md/cal/DESIGN.md +542 -0
- package/skills/fui-skill/design-md/cal/README.md +5 -0
- package/skills/fui-skill/design-md/claude/DESIGN.md +589 -0
- package/skills/fui-skill/design-md/claude/README.md +5 -0
- package/skills/fui-skill/design-md/clay/DESIGN.md +541 -0
- package/skills/fui-skill/design-md/clay/README.md +5 -0
- package/skills/fui-skill/design-md/clickhouse/DESIGN.md +544 -0
- package/skills/fui-skill/design-md/clickhouse/README.md +5 -0
- package/skills/fui-skill/design-md/cohere/DESIGN.md +451 -0
- package/skills/fui-skill/design-md/cohere/README.md +5 -0
- package/skills/fui-skill/design-md/coinbase/DESIGN.md +570 -0
- package/skills/fui-skill/design-md/coinbase/README.md +5 -0
- package/skills/fui-skill/design-md/composio/DESIGN.md +506 -0
- package/skills/fui-skill/design-md/composio/README.md +5 -0
- package/skills/fui-skill/design-md/cursor/DESIGN.md +537 -0
- package/skills/fui-skill/design-md/cursor/README.md +5 -0
- package/skills/fui-skill/design-md/elevenlabs/DESIGN.md +504 -0
- package/skills/fui-skill/design-md/elevenlabs/README.md +5 -0
- package/skills/fui-skill/design-md/expo/DESIGN.md +526 -0
- package/skills/fui-skill/design-md/expo/README.md +5 -0
- package/skills/fui-skill/design-md/ferrari/DESIGN.md +531 -0
- package/skills/fui-skill/design-md/ferrari/README.md +5 -0
- package/skills/fui-skill/design-md/figma/DESIGN.md +578 -0
- package/skills/fui-skill/design-md/figma/README.md +5 -0
- package/skills/fui-skill/design-md/framer/DESIGN.md +544 -0
- package/skills/fui-skill/design-md/framer/README.md +5 -0
- package/skills/fui-skill/design-md/fui/DESIGN.md +532 -0
- package/skills/fui-skill/design-md/hashicorp/DESIGN.md +575 -0
- package/skills/fui-skill/design-md/hashicorp/README.md +5 -0
- package/skills/fui-skill/design-md/ibm/DESIGN.md +550 -0
- package/skills/fui-skill/design-md/ibm/README.md +5 -0
- package/skills/fui-skill/design-md/intercom/DESIGN.md +546 -0
- package/skills/fui-skill/design-md/intercom/README.md +5 -0
- package/skills/fui-skill/design-md/kraken/DESIGN.md +125 -0
- package/skills/fui-skill/design-md/kraken/README.md +5 -0
- package/skills/fui-skill/design-md/lamborghini/DESIGN.md +288 -0
- package/skills/fui-skill/design-md/lamborghini/README.md +5 -0
- package/skills/fui-skill/design-md/linear.app/DESIGN.md +548 -0
- package/skills/fui-skill/design-md/linear.app/README.md +5 -0
- package/skills/fui-skill/design-md/lovable/DESIGN.md +298 -0
- package/skills/fui-skill/design-md/lovable/README.md +5 -0
- package/skills/fui-skill/design-md/mastercard/DESIGN.md +365 -0
- package/skills/fui-skill/design-md/mastercard/README.md +5 -0
- package/skills/fui-skill/design-md/meta/DESIGN.md +683 -0
- package/skills/fui-skill/design-md/meta/README.md +5 -0
- package/skills/fui-skill/design-md/minimax/DESIGN.md +746 -0
- package/skills/fui-skill/design-md/minimax/README.md +5 -0
- package/skills/fui-skill/design-md/mintlify/DESIGN.md +852 -0
- package/skills/fui-skill/design-md/mintlify/README.md +5 -0
- package/skills/fui-skill/design-md/miro/DESIGN.md +825 -0
- package/skills/fui-skill/design-md/miro/README.md +5 -0
- package/skills/fui-skill/design-md/mistral.ai/DESIGN.md +773 -0
- package/skills/fui-skill/design-md/mistral.ai/README.md +5 -0
- package/skills/fui-skill/design-md/mongodb/DESIGN.md +767 -0
- package/skills/fui-skill/design-md/mongodb/README.md +5 -0
- package/skills/fui-skill/design-md/nike/DESIGN.md +575 -0
- package/skills/fui-skill/design-md/nike/README.md +5 -0
- package/skills/fui-skill/design-md/notion/DESIGN.md +821 -0
- package/skills/fui-skill/design-md/notion/README.md +5 -0
- package/skills/fui-skill/design-md/nvidia/DESIGN.md +640 -0
- package/skills/fui-skill/design-md/nvidia/README.md +5 -0
- package/skills/fui-skill/design-md/ollama/DESIGN.md +539 -0
- package/skills/fui-skill/design-md/ollama/README.md +5 -0
- package/skills/fui-skill/design-md/opencode.ai/DESIGN.md +521 -0
- package/skills/fui-skill/design-md/opencode.ai/README.md +5 -0
- package/skills/fui-skill/design-md/pinterest/DESIGN.md +597 -0
- package/skills/fui-skill/design-md/pinterest/README.md +5 -0
- package/skills/fui-skill/design-md/playstation/DESIGN.md +661 -0
- package/skills/fui-skill/design-md/playstation/README.md +5 -0
- package/skills/fui-skill/design-md/posthog/DESIGN.md +690 -0
- package/skills/fui-skill/design-md/posthog/README.md +5 -0
- package/skills/fui-skill/design-md/raycast/DESIGN.md +669 -0
- package/skills/fui-skill/design-md/raycast/README.md +5 -0
- package/skills/fui-skill/design-md/renault/DESIGN.md +589 -0
- package/skills/fui-skill/design-md/renault/README.md +5 -0
- package/skills/fui-skill/design-md/replicate/DESIGN.md +616 -0
- package/skills/fui-skill/design-md/replicate/README.md +5 -0
- package/skills/fui-skill/design-md/resend/DESIGN.md +585 -0
- package/skills/fui-skill/design-md/resend/README.md +5 -0
- package/skills/fui-skill/design-md/revolut/DESIGN.md +636 -0
- package/skills/fui-skill/design-md/revolut/README.md +5 -0
- package/skills/fui-skill/design-md/runwayml/DESIGN.md +244 -0
- package/skills/fui-skill/design-md/runwayml/README.md +5 -0
- package/skills/fui-skill/design-md/sanity/DESIGN.md +357 -0
- package/skills/fui-skill/design-md/sanity/README.md +5 -0
- package/skills/fui-skill/design-md/sentry/DESIGN.md +551 -0
- package/skills/fui-skill/design-md/sentry/README.md +5 -0
- package/skills/fui-skill/design-md/shopify/DESIGN.md +516 -0
- package/skills/fui-skill/design-md/shopify/README.md +5 -0
- package/skills/fui-skill/design-md/slack/DESIGN.md +482 -0
- package/skills/fui-skill/design-md/spacex/DESIGN.md +363 -0
- package/skills/fui-skill/design-md/spacex/README.md +5 -0
- package/skills/fui-skill/design-md/spotify/DESIGN.md +246 -0
- package/skills/fui-skill/design-md/spotify/README.md +5 -0
- package/skills/fui-skill/design-md/starbucks/DESIGN.md +580 -0
- package/skills/fui-skill/design-md/starbucks/README.md +5 -0
- package/skills/fui-skill/design-md/stripe/DESIGN.md +487 -0
- package/skills/fui-skill/design-md/stripe/README.md +5 -0
- package/skills/fui-skill/design-md/supabase/DESIGN.md +462 -0
- package/skills/fui-skill/design-md/supabase/README.md +5 -0
- package/skills/fui-skill/design-md/superhuman/DESIGN.md +448 -0
- package/skills/fui-skill/design-md/superhuman/README.md +5 -0
- package/skills/fui-skill/design-md/tesla/DESIGN.md +286 -0
- package/skills/fui-skill/design-md/tesla/README.md +5 -0
- package/skills/fui-skill/design-md/theverge/DESIGN.md +339 -0
- package/skills/fui-skill/design-md/theverge/README.md +5 -0
- package/skills/fui-skill/design-md/together.ai/DESIGN.md +633 -0
- package/skills/fui-skill/design-md/together.ai/README.md +5 -0
- package/skills/fui-skill/design-md/uber/DESIGN.md +636 -0
- package/skills/fui-skill/design-md/uber/README.md +5 -0
- package/skills/fui-skill/design-md/vercel/DESIGN.md +736 -0
- package/skills/fui-skill/design-md/vercel/README.md +5 -0
- package/skills/fui-skill/design-md/vodafone/DESIGN.md +538 -0
- package/skills/fui-skill/design-md/vodafone/README.md +5 -0
- package/skills/fui-skill/design-md/voltagent/DESIGN.md +521 -0
- package/skills/fui-skill/design-md/voltagent/README.md +5 -0
- package/skills/fui-skill/design-md/warp/DESIGN.md +526 -0
- package/skills/fui-skill/design-md/warp/README.md +5 -0
- package/skills/fui-skill/design-md/webflow/DESIGN.md +588 -0
- package/skills/fui-skill/design-md/webflow/README.md +5 -0
- package/skills/fui-skill/design-md/wired/DESIGN.md +497 -0
- package/skills/fui-skill/design-md/wired/README.md +5 -0
- package/skills/fui-skill/design-md/wise/DESIGN.md +544 -0
- package/skills/fui-skill/design-md/wise/README.md +5 -0
- package/skills/fui-skill/design-md/x.ai/DESIGN.md +465 -0
- package/skills/fui-skill/design-md/x.ai/README.md +5 -0
- package/skills/fui-skill/design-md/zapier/DESIGN.md +537 -0
- package/skills/fui-skill/design-md/zapier/README.md +5 -0
- package/skills/fui-skill/examples/component.vue +162 -0
- package/skills/fui-skill/examples/f-table-patterns.json +331 -0
- package/skills/fui-skill/examples/module-patterns.json +973 -0
- package/skills/fui-skill/examples/project-patterns.json +222 -0
- package/skills/fui-skill/metadata.json +75 -0
- package/skills/fui-skill/references/INDEX.md +144 -0
- package/skills/fui-skill/references/advanced-techniques.md +160 -0
- package/skills/fui-skill/references/coding-standards.md +112 -0
- package/skills/fui-skill/references/component-design.md +455 -0
- package/skills/fui-skill/references/component-quickref.md +77 -0
- package/skills/fui-skill/references/component-table.md +276 -0
- package/skills/fui-skill/references/components-dialog.md +192 -0
- package/skills/fui-skill/references/components-display.md +147 -0
- package/skills/fui-skill/references/components-echart.md +391 -0
- package/skills/fui-skill/references/components-input.md +359 -0
- package/skills/fui-skill/references/controls-patterns.md +847 -0
- package/skills/fui-skill/references/controls-styling-vocabulary.md +140 -0
- package/skills/fui-skill/references/db-table-design.md +77 -0
- package/skills/fui-skill/references/db-workflow.md +504 -0
- package/skills/fui-skill/references/default-function.md +415 -0
- package/skills/fui-skill/references/design-modes.md +85 -0
- package/skills/fui-skill/references/echart-templates.md +481 -0
- package/skills/fui-skill/references/fastproject.md +97 -0
- package/skills/fui-skill/references/fsheet.md +218 -0
- package/skills/fui-skill/references/fullstack-workflow.md +351 -0
- package/skills/fui-skill/references/module-data-patterns.md +126 -0
- package/skills/fui-skill/references/module-json-anatomy.md +137 -0
- package/skills/fui-skill/references/module-structure.md +260 -0
- package/skills/fui-skill/references/new-session.md +108 -0
- package/skills/fui-skill/references/pdfmake.md +60 -0
- package/skills/fui-skill/references/permission-system.md +169 -0
- package/skills/fui-skill/references/platform-architecture.md +294 -0
- package/skills/fui-skill/references/project-config.md +335 -0
- package/skills/fui-skill/references/project-provisioning.md +383 -0
- package/skills/fui-skill/references/script-map.md +296 -0
- package/skills/fui-skill/references/sql-clr-functions.md +224 -0
- package/skills/fui-skill/references/system-design.md +116 -0
- package/skills/fui-skill/references/tapi-file-api.md +191 -0
- package/skills/fui-skill/references/tapi-permission-patterns.md +158 -0
- package/skills/fui-skill/references/tapi-reference.md +549 -0
- package/skills/fui-skill/references/tools-registry.md +460 -0
- package/skills/fui-skill/references/ui-crosswindow-patterns.md +317 -0
- package/skills/fui-skill/references/ui-dialog-patterns.md +229 -0
- package/skills/fui-skill/references/ui-layout-patterns.md +176 -0
- package/skills/fui-skill/references/ui-patterns.md +315 -0
- package/skills/fui-skill/references/ui-screenshot-review.md +94 -0
- package/skills/fui-skill/references/ui-table-cell-patterns.md +316 -0
- package/skills/fui-skill/references/ui-templates.md +29 -0
- package/skills/fui-skill/references/verification.md +246 -0
- package/skills/fui-skill/references/watcher-patterns.md +196 -0
- package/skills/fui-skill/references/websocket-realtime.md +254 -0
- package/skills/fui-skill/scripts/component-3.0.js +2549 -0
- package/skills/fui-skill/scripts/component.js +3142 -0
- package/skills/fui-skill/scripts/componentTable-3.0.js +909 -0
- package/skills/fui-skill/scripts/componentTable.js +769 -0
- package/skills/fui-skill/scripts/defaultfunction-3.0.js +781 -0
- package/skills/fui-skill/scripts/defaultfunction.js +966 -0
- package/skills/fui-skill/scripts/fastproject-3.0.js +870 -0
- package/skills/fui-skill/scripts/fastproject.js +828 -0
- package/skills/fui-skill/scripts/fechart.js +890 -0
- package/skills/fui-skill/scripts/fsheet.js +1330 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Academic Excellence System
|
|
3
|
+
colors:
|
|
4
|
+
surface: '#f9f9f9'
|
|
5
|
+
surface-dim: '#dadada'
|
|
6
|
+
surface-bright: '#f9f9f9'
|
|
7
|
+
surface-container-lowest: '#ffffff'
|
|
8
|
+
surface-container-low: '#f3f3f3'
|
|
9
|
+
surface-container: '#eeeeee'
|
|
10
|
+
surface-container-high: '#e8e8e8'
|
|
11
|
+
surface-container-highest: '#e2e2e2'
|
|
12
|
+
on-surface: '#1a1c1c'
|
|
13
|
+
on-surface-variant: '#564145'
|
|
14
|
+
inverse-surface: '#2f3131'
|
|
15
|
+
inverse-on-surface: '#f1f1f1'
|
|
16
|
+
outline: '#897174'
|
|
17
|
+
outline-variant: '#ddbfc3'
|
|
18
|
+
surface-tint: '#a73354'
|
|
19
|
+
primary: '#6c002a'
|
|
20
|
+
on-primary: '#ffffff'
|
|
21
|
+
primary-container: '#8c1d40'
|
|
22
|
+
on-primary-container: '#ff9eb1'
|
|
23
|
+
inverse-primary: '#ffb2bf'
|
|
24
|
+
secondary: '#775a00'
|
|
25
|
+
on-secondary: '#ffffff'
|
|
26
|
+
secondary-container: '#fdc424'
|
|
27
|
+
on-secondary-container: '#6d5200'
|
|
28
|
+
tertiary: '#343333'
|
|
29
|
+
on-tertiary: '#ffffff'
|
|
30
|
+
tertiary-container: '#4b4a4a'
|
|
31
|
+
on-tertiary-container: '#bcb9b9'
|
|
32
|
+
error: '#ba1a1a'
|
|
33
|
+
on-error: '#ffffff'
|
|
34
|
+
error-container: '#ffdad6'
|
|
35
|
+
on-error-container: '#93000a'
|
|
36
|
+
primary-fixed: '#ffd9de'
|
|
37
|
+
primary-fixed-dim: '#ffb2bf'
|
|
38
|
+
on-primary-fixed: '#3f0016'
|
|
39
|
+
on-primary-fixed-variant: '#88193d'
|
|
40
|
+
secondary-fixed: '#ffdf9a'
|
|
41
|
+
secondary-fixed-dim: '#f6be1d'
|
|
42
|
+
on-secondary-fixed: '#251a00'
|
|
43
|
+
on-secondary-fixed-variant: '#5a4300'
|
|
44
|
+
tertiary-fixed: '#e5e2e1'
|
|
45
|
+
tertiary-fixed-dim: '#c8c6c5'
|
|
46
|
+
on-tertiary-fixed: '#1c1b1b'
|
|
47
|
+
on-tertiary-fixed-variant: '#474746'
|
|
48
|
+
background: '#f9f9f9'
|
|
49
|
+
on-background: '#1a1c1c'
|
|
50
|
+
surface-variant: '#e2e2e2'
|
|
51
|
+
heritage-maroon: '#8C1D40'
|
|
52
|
+
gold-standard: '#FFC627'
|
|
53
|
+
deep-onyx: '#191919'
|
|
54
|
+
canvas-white: '#FFFFFF'
|
|
55
|
+
fog-gray: '#F0F0F0'
|
|
56
|
+
typography:
|
|
57
|
+
display:
|
|
58
|
+
fontFamily: Hanken Grotesk
|
|
59
|
+
fontSize: 48px
|
|
60
|
+
fontWeight: '800'
|
|
61
|
+
lineHeight: 56px
|
|
62
|
+
letterSpacing: -0.02em
|
|
63
|
+
headline-lg:
|
|
64
|
+
fontFamily: Hanken Grotesk
|
|
65
|
+
fontSize: 32px
|
|
66
|
+
fontWeight: '700'
|
|
67
|
+
lineHeight: 40px
|
|
68
|
+
letterSpacing: -0.01em
|
|
69
|
+
headline-lg-mobile:
|
|
70
|
+
fontFamily: Hanken Grotesk
|
|
71
|
+
fontSize: 28px
|
|
72
|
+
fontWeight: '700'
|
|
73
|
+
lineHeight: 36px
|
|
74
|
+
headline-md:
|
|
75
|
+
fontFamily: Hanken Grotesk
|
|
76
|
+
fontSize: 24px
|
|
77
|
+
fontWeight: '600'
|
|
78
|
+
lineHeight: 32px
|
|
79
|
+
body-lg:
|
|
80
|
+
fontFamily: Inter
|
|
81
|
+
fontSize: 18px
|
|
82
|
+
fontWeight: '400'
|
|
83
|
+
lineHeight: 28px
|
|
84
|
+
body-md:
|
|
85
|
+
fontFamily: Inter
|
|
86
|
+
fontSize: 16px
|
|
87
|
+
fontWeight: '400'
|
|
88
|
+
lineHeight: 24px
|
|
89
|
+
body-sm:
|
|
90
|
+
fontFamily: Inter
|
|
91
|
+
fontSize: 14px
|
|
92
|
+
fontWeight: '400'
|
|
93
|
+
lineHeight: 20px
|
|
94
|
+
label-lg:
|
|
95
|
+
fontFamily: Inter
|
|
96
|
+
fontSize: 14px
|
|
97
|
+
fontWeight: '600'
|
|
98
|
+
lineHeight: 20px
|
|
99
|
+
letterSpacing: 0.02em
|
|
100
|
+
label-md:
|
|
101
|
+
fontFamily: Inter
|
|
102
|
+
fontSize: 12px
|
|
103
|
+
fontWeight: '600'
|
|
104
|
+
lineHeight: 16px
|
|
105
|
+
letterSpacing: 0.04em
|
|
106
|
+
button:
|
|
107
|
+
fontFamily: Inter
|
|
108
|
+
fontSize: 14px
|
|
109
|
+
fontWeight: '700'
|
|
110
|
+
lineHeight: 20px
|
|
111
|
+
rounded:
|
|
112
|
+
sm: 0.125rem
|
|
113
|
+
DEFAULT: 0.25rem
|
|
114
|
+
md: 0.375rem
|
|
115
|
+
lg: 0.5rem
|
|
116
|
+
xl: 0.75rem
|
|
117
|
+
full: 9999px
|
|
118
|
+
spacing:
|
|
119
|
+
base: 8px
|
|
120
|
+
container-max: 1280px
|
|
121
|
+
gutter: 24px
|
|
122
|
+
margin-desktop: 48px
|
|
123
|
+
margin-mobile: 16px
|
|
124
|
+
stack-sm: 8px
|
|
125
|
+
stack-md: 16px
|
|
126
|
+
stack-lg: 32px
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Brand & Style
|
|
130
|
+
|
|
131
|
+
This design system translates a prestigious academic heritage into a modern, digital-first experience. The brand personality is **authoritative, innovative, and accessible**. It is designed to serve a diverse university ecosystem—students, faculty, and alumni—evoking a sense of belonging and intellectual rigor.
|
|
132
|
+
|
|
133
|
+
The chosen design style is **Modern Minimalism**. By leveraging generous whitespace and a disciplined color application, the system moves away from legacy institutional clutter toward a streamlined, functional aesthetic. High-contrast typography and a structured grid ensure information density remains readable, while subtle tonal layering replaces heavy shadows to maintain a clean, contemporary profile.
|
|
134
|
+
|
|
135
|
+
## Colors
|
|
136
|
+
|
|
137
|
+
The palette is anchored by the iconic heritage maroon and gold. To modernize the application, the **heritage-maroon** is used primarily for brand signaling, primary actions, and structural accents. The **gold-standard** is used sparingly as a high-visibility accent color for alerts, highlights, or secondary interactive states, ensuring it doesn't overwhelm the visual field.
|
|
138
|
+
|
|
139
|
+
The background architecture relies on **canvas-white** and **fog-gray** to create a tiered surface system. **Deep-onyx** is reserved for primary typography and high-contrast UI elements to ensure WCAG AA accessibility standards are met across all interfaces. The color logic favors "less is more," using color to guide the user's eye to critical paths rather than for decoration.
|
|
140
|
+
|
|
141
|
+
## Typography
|
|
142
|
+
|
|
143
|
+
The system replaces legacy websafe fonts with a sophisticated pair of modern sans-serifs. **Hanken Grotesk** serves as the display typeface, providing a sharp, contemporary edge to headlines with its geometric clarity. **Inter** is utilized for all body copy and UI labels, chosen for its exceptional legibility and systematic performance in dense data environments.
|
|
144
|
+
|
|
145
|
+
Hierarchy is established through significant weight shifts rather than just size changes. Large displays and headlines utilize bold and extra-bold weights to command attention, while body text maintains a comfortable regular weight for long-form reading. Labels and button text utilize semi-bold weights and slight tracking adjustments to ensure clarity at smaller scales.
|
|
146
|
+
|
|
147
|
+
## Layout & Spacing
|
|
148
|
+
|
|
149
|
+
This design system employs a **12-column fluid grid** for desktop and a **4-column grid** for mobile. The layout philosophy is centered on "Information Density Control," using a strictly defined 8px spatial scale to create rhythm and predictability.
|
|
150
|
+
|
|
151
|
+
- **Desktop:** 12 columns with 24px gutters. Content is centered in a 1280px max-width container.
|
|
152
|
+
- **Tablet:** 8 columns with 20px gutters and 32px side margins.
|
|
153
|
+
- **Mobile:** 4 columns with 16px gutters and 16px side margins.
|
|
154
|
+
|
|
155
|
+
Horizontal spacing (gutters/margins) remains consistent to maintain the vertical "aisles" of the design, while vertical spacing (stacks) is used to group related content. Larger gaps (stack-lg) are used to separate distinct sections, while smaller gaps (stack-sm) define relationships between headlines and their respective body text.
|
|
156
|
+
|
|
157
|
+
## Elevation & Depth
|
|
158
|
+
|
|
159
|
+
This design system utilizes **Tonal Layers** rather than heavy shadows to signify depth, aligning with the minimalist aesthetic. Depth is communicated through subtle shifts in background color and low-contrast "ghost" borders.
|
|
160
|
+
|
|
161
|
+
- **Level 0 (Base):** The primary background color (`#FFFFFF`).
|
|
162
|
+
- **Level 1 (Surface):** Used for cards or sectioned content, utilizing a 1px border of `fog-gray` or a background fill of `fog-gray`.
|
|
163
|
+
- **Level 2 (Overlay):** For menus and modals, a very soft, highly diffused ambient shadow is used (0px 4px 20px, 5% opacity deep-onyx) to lift the element without creating visual noise.
|
|
164
|
+
- **Interaction:** Hover states on interactive cards should transition from a flat state to a subtle lift using a 1px maroon border rather than an increased shadow.
|
|
165
|
+
|
|
166
|
+
## Shapes
|
|
167
|
+
|
|
168
|
+
The shape language is **Soft (Level 1)**, reflecting a professional and structured environment. UI elements such as buttons, input fields, and cards utilize a 0.25rem (4px) corner radius. This slight rounding softens the "brutalist" edge of a strict grid while maintaining a crisp, architectural feel.
|
|
169
|
+
|
|
170
|
+
Large containers and feature sections can use `rounded-lg` (8px) to create a clear distinction between the page structure and smaller interactive components. Circular shapes are strictly reserved for avatars and icon backgrounds to provide a distinct contrast against the predominantly rectangular UI.
|
|
171
|
+
|
|
172
|
+
## Components
|
|
173
|
+
|
|
174
|
+
- **Buttons:** Primary buttons are solid **heritage-maroon** with white text, utilizing uppercase labels for an authoritative feel. Secondary buttons use a maroon outline with a white background. All buttons have a 4px corner radius.
|
|
175
|
+
- **Input Fields:** Use a 1px border of **fog-gray**. On focus, the border transitions to maroon with a subtle 2px inset ring. Labels are always positioned above the field using `label-md`.
|
|
176
|
+
- **Cards:** White background with a 1px `fog-gray` border. No shadow by default. High-level "Action Cards" may use a gold top-border (3px) to denote importance or status.
|
|
177
|
+
- **Chips/Badges:** Small, pill-shaped elements with a light `fog-gray` fill and `body-sm` text. Status-specific chips (e.g., "Open", "Closed") may use a light tint of maroon or gold.
|
|
178
|
+
- **Lists:** Clean, border-bottom separated rows with 16px vertical padding. Use `body-md` for primary list items and `body-sm` (in deep-onyx at 60% opacity) for metadata.
|
|
179
|
+
- **Global Header:** A high-contrast bar using a white background, featuring the university logo aligned left and navigation links using `button` typography. A maroon top-accent bar (4px) provides brand continuity.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# ASU — Academic Excellence System Design
|
|
2
|
+
|
|
3
|
+
Custom design system for a university platform. Full spec: [DESIGN.md](./DESIGN.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Personality & Style
|
|
8
|
+
|
|
9
|
+
**Authoritative · Innovative · Accessible** — Modern Minimalism. Generous whitespace, disciplined color, high-contrast typography. Tonal layers instead of heavy shadows.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Brand Colors
|
|
14
|
+
|
|
15
|
+
| Token | Hex | Usage |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `heritage-maroon` | `#8C1D40` | Primary brand, CTA buttons, accents |
|
|
18
|
+
| `gold-standard` | `#FFC627` | Highlights, alerts, secondary interactive |
|
|
19
|
+
| `deep-onyx` | `#191919` | Primary text, high-contrast elements |
|
|
20
|
+
| `canvas-white` | `#FFFFFF` | Level 0 background |
|
|
21
|
+
| `fog-gray` | `#F0F0F0` | Level 1 surface, card borders, input borders |
|
|
22
|
+
|
|
23
|
+
| Semantic | Hex | Usage |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| `primary` | `#6c002a` | Primary actions |
|
|
26
|
+
| `primary-container` | `#8c1d40` | Containers / nav |
|
|
27
|
+
| `secondary` | `#775a00` | Secondary actions |
|
|
28
|
+
| `secondary-container` | `#fdc424` | Secondary containers |
|
|
29
|
+
| `on-surface` | `#1a1c1c` | Body text |
|
|
30
|
+
| `outline` | `#897174` | Borders, dividers |
|
|
31
|
+
| `error` | `#ba1a1a` | Error states |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Typography
|
|
36
|
+
|
|
37
|
+
| Scale | Font | Size | Weight | Line Height |
|
|
38
|
+
|---|---|---|---|---|
|
|
39
|
+
| `display` | Hanken Grotesk | 48px | 800 | 56px |
|
|
40
|
+
| `headline-lg` | Hanken Grotesk | 32px | 700 | 40px |
|
|
41
|
+
| `headline-lg-mobile` | Hanken Grotesk | 28px | 700 | 36px |
|
|
42
|
+
| `headline-md` | Hanken Grotesk | 24px | 600 | 32px |
|
|
43
|
+
| `body-lg` | Inter | 18px | 400 | 28px |
|
|
44
|
+
| `body-md` | Inter | 16px | 400 | 24px |
|
|
45
|
+
| `body-sm` | Inter | 14px | 400 | 20px |
|
|
46
|
+
| `label-lg` | Inter | 14px | 600 | 20px |
|
|
47
|
+
| `label-md` | Inter | 12px | 600 | 16px |
|
|
48
|
+
| `button` | Inter | 14px | 700 | 20px |
|
|
49
|
+
|
|
50
|
+
Google Fonts import: `Hanken+Grotesk:wght@600;700;800` + `Inter:wght@400;600;700`
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Spacing (8px base scale)
|
|
55
|
+
|
|
56
|
+
| Token | Value | Usage |
|
|
57
|
+
|---|---|---|
|
|
58
|
+
| `stack-sm` | 8px | Headline → body gap |
|
|
59
|
+
| `stack-md` | 16px | Related content grouping |
|
|
60
|
+
| `stack-lg` | 32px | Section separators |
|
|
61
|
+
| `gutter` | 24px | Column gutters |
|
|
62
|
+
| `margin-desktop` | 48px | Desktop side margins |
|
|
63
|
+
| `margin-mobile` | 16px | Mobile side margins |
|
|
64
|
+
| `container-max` | 1280px | Max content width |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Grid
|
|
69
|
+
|
|
70
|
+
- **Desktop:** 12 columns, 24px gutters, 1280px max-width, 48px side margins
|
|
71
|
+
- **Tablet:** 8 columns, 20px gutters, 32px side margins
|
|
72
|
+
- **Mobile:** 4 columns, 16px gutters, 16px side margins
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Border Radius
|
|
77
|
+
|
|
78
|
+
| Token | Value | Usage |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| `rounded-sm` | 2px | Subtle rounding |
|
|
81
|
+
| `rounded` (default) | 4px | Buttons, inputs, cards |
|
|
82
|
+
| `rounded-md` | 6px | – |
|
|
83
|
+
| `rounded-lg` | 8px | Large containers, feature sections |
|
|
84
|
+
| `rounded-full` | 9999px | Avatars, icon backgrounds only |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Elevation (Tonal, no heavy shadows)
|
|
89
|
+
|
|
90
|
+
| Level | Surface | Usage |
|
|
91
|
+
|---|---|---|
|
|
92
|
+
| 0 | `#FFFFFF` | Page background |
|
|
93
|
+
| 1 | `fog-gray` fill or 1px `fog-gray` border | Cards, sections |
|
|
94
|
+
| 2 | `0px 4px 20px rgba(25,25,25,0.05)` | Modals, menus |
|
|
95
|
+
| Hover | 1px maroon border transition | Interactive cards |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Components
|
|
100
|
+
|
|
101
|
+
- **Button primary:** `heritage-maroon` fill, white text, uppercase, 4px radius
|
|
102
|
+
- **Button secondary:** maroon outline, white background
|
|
103
|
+
- **Input:** 1px `fog-gray` border → maroon border + 2px inset ring on focus. Label above field.
|
|
104
|
+
- **Card:** white bg, 1px `fog-gray` border, no shadow. High-priority cards: 3px `gold-standard` top border.
|
|
105
|
+
- **Chip/Badge:** `fog-gray` fill, `body-sm`. Status variants: maroon or gold tint.
|
|
106
|
+
- **List row:** border-bottom separated, 16px vertical padding. Primary `body-md`, metadata `body-sm` at 60% opacity.
|
|
107
|
+
- **Global header:** white bg, 4px maroon top-accent bar, logo left, `button` typography for nav.
|