@jack200714/mafw 4.5.1 → 4.5.2
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 +5 -2
- package/bin/mafw.js +16 -14
- package/package.json +1 -7
- package/.opencode/mafw/.backup-v61/parametric/base-skill-manifest.yaml +0 -2
- package/.opencode/mafw/STATUS.md +0 -6
- package/.opencode/mafw/ledger.md +0 -20
- package/.opencode/mafw/memory/.harmonic_index.json +0 -28
- package/.opencode/mafw/memory/.review_queue.json +0 -1
- package/.opencode/mafw/memory/tier3/parametric.json +0 -13
- package/.opencode/mafw/memory/tier3/test-goal.json +0 -19
- package/.opencode/mafw/memory-index.json +0 -6
- package/.opencode/mafw/parametric/base-skill-manifest.yaml +0 -2
- package/.opencode/mafw/waves.json +0 -4
- package/.opencode/opencode.json +0 -3
- package/.opencode/plugins/mafw-plugin.ts +0 -8
- package/.opencode/skills/banner-design/SKILL.md +0 -196
- package/.opencode/skills/banner-design/references/banner-sizes-and-styles.md +0 -118
- package/.opencode/skills/brand/SKILL.md +0 -97
- package/.opencode/skills/brand/references/approval-checklist.md +0 -169
- package/.opencode/skills/brand/references/asset-organization.md +0 -157
- package/.opencode/skills/brand/references/brand-guideline-template.md +0 -140
- package/.opencode/skills/brand/references/color-palette-management.md +0 -186
- package/.opencode/skills/brand/references/consistency-checklist.md +0 -94
- package/.opencode/skills/brand/references/logo-usage-rules.md +0 -185
- package/.opencode/skills/brand/references/messaging-framework.md +0 -85
- package/.opencode/skills/brand/references/typography-specifications.md +0 -214
- package/.opencode/skills/brand/references/update.md +0 -118
- package/.opencode/skills/brand/references/visual-identity.md +0 -96
- package/.opencode/skills/brand/references/voice-framework.md +0 -88
- package/.opencode/skills/brand/scripts/extract-colors.cjs +0 -341
- package/.opencode/skills/brand/scripts/inject-brand-context.cjs +0 -349
- package/.opencode/skills/brand/scripts/sync-brand-to-tokens.cjs +0 -248
- package/.opencode/skills/brand/scripts/tests/test_sync_brand_to_tokens.py +0 -52
- package/.opencode/skills/brand/scripts/validate-asset.cjs +0 -387
- package/.opencode/skills/brand/templates/brand-guidelines-starter.md +0 -275
- package/.opencode/skills/design/SKILL.md +0 -313
- package/.opencode/skills/design/data/cip/deliverables.csv +0 -51
- package/.opencode/skills/design/data/cip/industries.csv +0 -21
- package/.opencode/skills/design/data/cip/mockup-contexts.csv +0 -21
- package/.opencode/skills/design/data/cip/styles.csv +0 -21
- package/.opencode/skills/design/data/icon/styles.csv +0 -16
- package/.opencode/skills/design/data/logo/colors.csv +0 -56
- package/.opencode/skills/design/data/logo/industries.csv +0 -56
- package/.opencode/skills/design/data/logo/styles.csv +0 -56
- package/.opencode/skills/design/references/banner-sizes-and-styles.md +0 -118
- package/.opencode/skills/design/references/cip-deliverable-guide.md +0 -95
- package/.opencode/skills/design/references/cip-design.md +0 -121
- package/.opencode/skills/design/references/cip-prompt-engineering.md +0 -84
- package/.opencode/skills/design/references/cip-style-guide.md +0 -68
- package/.opencode/skills/design/references/design-routing.md +0 -207
- package/.opencode/skills/design/references/icon-design.md +0 -122
- package/.opencode/skills/design/references/logo-color-psychology.md +0 -101
- package/.opencode/skills/design/references/logo-design.md +0 -92
- package/.opencode/skills/design/references/logo-prompt-engineering.md +0 -158
- package/.opencode/skills/design/references/logo-style-guide.md +0 -109
- package/.opencode/skills/design/references/slides-copywriting-formulas.md +0 -84
- package/.opencode/skills/design/references/slides-create.md +0 -4
- package/.opencode/skills/design/references/slides-html-template.md +0 -295
- package/.opencode/skills/design/references/slides-layout-patterns.md +0 -137
- package/.opencode/skills/design/references/slides-strategies.md +0 -94
- package/.opencode/skills/design/references/slides.md +0 -42
- package/.opencode/skills/design/references/social-photos-design.md +0 -329
- package/.opencode/skills/design/scripts/cip/core.py +0 -215
- package/.opencode/skills/design/scripts/cip/generate.py +0 -484
- package/.opencode/skills/design/scripts/cip/render-html.py +0 -424
- package/.opencode/skills/design/scripts/cip/search.py +0 -127
- package/.opencode/skills/design/scripts/icon/generate.py +0 -487
- package/.opencode/skills/design/scripts/logo/core.py +0 -175
- package/.opencode/skills/design/scripts/logo/generate.py +0 -362
- package/.opencode/skills/design/scripts/logo/search.py +0 -114
- package/.opencode/skills/design-system/SKILL.md +0 -244
- package/.opencode/skills/design-system/data/slide-backgrounds.csv +0 -11
- package/.opencode/skills/design-system/data/slide-charts.csv +0 -26
- package/.opencode/skills/design-system/data/slide-color-logic.csv +0 -14
- package/.opencode/skills/design-system/data/slide-copy.csv +0 -26
- package/.opencode/skills/design-system/data/slide-layout-logic.csv +0 -16
- package/.opencode/skills/design-system/data/slide-layouts.csv +0 -26
- package/.opencode/skills/design-system/data/slide-strategies.csv +0 -16
- package/.opencode/skills/design-system/data/slide-typography.csv +0 -15
- package/.opencode/skills/design-system/references/component-specs.md +0 -236
- package/.opencode/skills/design-system/references/component-tokens.md +0 -214
- package/.opencode/skills/design-system/references/primitive-tokens.md +0 -203
- package/.opencode/skills/design-system/references/semantic-tokens.md +0 -215
- package/.opencode/skills/design-system/references/states-and-variants.md +0 -241
- package/.opencode/skills/design-system/references/tailwind-integration.md +0 -251
- package/.opencode/skills/design-system/references/token-architecture.md +0 -224
- package/.opencode/skills/design-system/scripts/embed-tokens.cjs +0 -99
- package/.opencode/skills/design-system/scripts/fetch-background.py +0 -317
- package/.opencode/skills/design-system/scripts/generate-slide.py +0 -770
- package/.opencode/skills/design-system/scripts/generate-tokens.cjs +0 -205
- package/.opencode/skills/design-system/scripts/html-token-validator.py +0 -327
- package/.opencode/skills/design-system/scripts/search-slides.py +0 -218
- package/.opencode/skills/design-system/scripts/slide-token-validator.py +0 -35
- package/.opencode/skills/design-system/scripts/slide_search_core.py +0 -453
- package/.opencode/skills/design-system/scripts/tests/test_validate_tokens.py +0 -48
- package/.opencode/skills/design-system/scripts/validate-tokens.cjs +0 -246
- package/.opencode/skills/design-system/templates/design-tokens-starter.json +0 -143
- package/.opencode/skills/frontend-design/LICENSE.txt +0 -21
- package/.opencode/skills/frontend-design/SKILL.md +0 -115
- package/.opencode/skills/mafw-automation-interview/SKILL.md +0 -43
- package/.opencode/skills/mafw-cli-scanner/SKILL.md +0 -37
- package/.opencode/skills/mafw-compression-verifier/SKILL.md +0 -52
- package/.opencode/skills/mafw-desktop-inspector/SKILL.md +0 -170
- package/.opencode/skills/mafw-execute/SKILL.md +0 -62
- package/.opencode/skills/mafw-gateway-restart/SKILL.md +0 -87
- package/.opencode/skills/mafw-github-scanner/SKILL.md +0 -38
- package/.opencode/skills/mafw-goal/SKILL.md +0 -76
- package/.opencode/skills/mafw-interview/SKILL.md +0 -68
- package/.opencode/skills/mafw-memory-extractor/SKILL.md +0 -65
- package/.opencode/skills/mafw-plan/SKILL.md +0 -58
- package/.opencode/skills/mafw-review/SKILL.md +0 -85
- package/.opencode/skills/runtime-plugin-authoring/SKILL.md +0 -791
- package/.opencode/skills/slides/SKILL.md +0 -40
- package/.opencode/skills/slides/references/copywriting-formulas.md +0 -84
- package/.opencode/skills/slides/references/create.md +0 -4
- package/.opencode/skills/slides/references/html-template.md +0 -295
- package/.opencode/skills/slides/references/layout-patterns.md +0 -137
- package/.opencode/skills/slides/references/slide-strategies.md +0 -94
- package/.opencode/skills/ui-styling/LICENSE.txt +0 -202
- package/.opencode/skills/ui-styling/SKILL.md +0 -324
- package/.opencode/skills/ui-styling/references/canvas-design-system.md +0 -320
- package/.opencode/skills/ui-styling/references/shadcn-accessibility.md +0 -471
- package/.opencode/skills/ui-styling/references/shadcn-components.md +0 -424
- package/.opencode/skills/ui-styling/references/shadcn-theming.md +0 -373
- package/.opencode/skills/ui-styling/references/tailwind-customization.md +0 -483
- package/.opencode/skills/ui-styling/references/tailwind-responsive.md +0 -382
- package/.opencode/skills/ui-styling/references/tailwind-utilities.md +0 -455
- package/.opencode/skills/ui-styling/scripts/requirements.txt +0 -17
- package/.opencode/skills/ui-styling/scripts/shadcn_add.py +0 -308
- package/.opencode/skills/ui-styling/scripts/tailwind_config_gen.py +0 -473
- package/.opencode/skills/ui-styling/scripts/tests/coverage-ui.json +0 -1
- package/.opencode/skills/ui-styling/scripts/tests/requirements.txt +0 -3
- package/.opencode/skills/ui-styling/scripts/tests/test_shadcn_add.py +0 -266
- package/.opencode/skills/ui-styling/scripts/tests/test_tailwind_config_gen.py +0 -394
- package/.opencode/skills/ui-ux-pro-max/SKILL.md +0 -388
- package/.opencode/skills/ui-ux-pro-max/data/app-interface.csv +0 -31
- package/.opencode/skills/ui-ux-pro-max/data/charts.csv +0 -26
- package/.opencode/skills/ui-ux-pro-max/data/colors.csv +0 -193
- package/.opencode/skills/ui-ux-pro-max/data/google-fonts.csv +0 -1924
- package/.opencode/skills/ui-ux-pro-max/data/icons.csv +0 -106
- package/.opencode/skills/ui-ux-pro-max/data/landing.csv +0 -35
- package/.opencode/skills/ui-ux-pro-max/data/motion.csv +0 -17
- package/.opencode/skills/ui-ux-pro-max/data/products.csv +0 -193
- package/.opencode/skills/ui-ux-pro-max/data/react-performance.csv +0 -45
- package/.opencode/skills/ui-ux-pro-max/data/stacks/angular.csv +0 -51
- package/.opencode/skills/ui-ux-pro-max/data/stacks/astro.csv +0 -54
- package/.opencode/skills/ui-ux-pro-max/data/stacks/avalonia.csv +0 -57
- package/.opencode/skills/ui-ux-pro-max/data/stacks/flutter.csv +0 -53
- package/.opencode/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -56
- package/.opencode/skills/ui-ux-pro-max/data/stacks/javafx.csv +0 -76
- package/.opencode/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +0 -53
- package/.opencode/skills/ui-ux-pro-max/data/stacks/laravel.csv +0 -51
- package/.opencode/skills/ui-ux-pro-max/data/stacks/nextjs.csv +0 -53
- package/.opencode/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +0 -71
- package/.opencode/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +0 -59
- package/.opencode/skills/ui-ux-pro-max/data/stacks/react-native.csv +0 -52
- package/.opencode/skills/ui-ux-pro-max/data/stacks/react.csv +0 -54
- package/.opencode/skills/ui-ux-pro-max/data/stacks/shadcn.csv +0 -61
- package/.opencode/skills/ui-ux-pro-max/data/stacks/svelte.csv +0 -54
- package/.opencode/skills/ui-ux-pro-max/data/stacks/swiftui.csv +0 -51
- package/.opencode/skills/ui-ux-pro-max/data/stacks/threejs.csv +0 -54
- package/.opencode/skills/ui-ux-pro-max/data/stacks/uno.csv +0 -60
- package/.opencode/skills/ui-ux-pro-max/data/stacks/uwp.csv +0 -56
- package/.opencode/skills/ui-ux-pro-max/data/stacks/vue.csv +0 -50
- package/.opencode/skills/ui-ux-pro-max/data/stacks/winui.csv +0 -60
- package/.opencode/skills/ui-ux-pro-max/data/stacks/wpf.csv +0 -57
- package/.opencode/skills/ui-ux-pro-max/data/styles.csv +0 -85
- package/.opencode/skills/ui-ux-pro-max/data/typography.csv +0 -75
- package/.opencode/skills/ui-ux-pro-max/data/ui-reasoning.csv +0 -162
- package/.opencode/skills/ui-ux-pro-max/data/ux-guidelines.csv +0 -100
- package/.opencode/skills/ui-ux-pro-max/scripts/core.py +0 -464
- package/.opencode/skills/ui-ux-pro-max/scripts/design_system.py +0 -1479
- package/.opencode/skills/ui-ux-pro-max/scripts/search.py +0 -162
- package/.opencode/skills/ui-ux-pro-max/scripts/tests/test_core.py +0 -134
- package/.opencode/skills/ui-ux-pro-max/scripts/tests/test_design_system_mode.py +0 -159
- package/.opencode/skills/ui-ux-pro-max/scripts/validate_data.py +0 -114
- package/dist/hooks/bash-python-guide.d.ts +0 -4
- package/dist/hooks/bash-python-guide.d.ts.map +0 -1
- package/dist/hooks/bash-python-guide.js +0 -67
- package/dist/hooks/bash-python-guide.js.map +0 -1
- package/dist/hooks/handoff.d.ts +0 -9
- package/dist/hooks/handoff.d.ts.map +0 -1
- package/dist/hooks/handoff.js +0 -8
- package/dist/hooks/handoff.js.map +0 -1
- package/dist/hooks/hook-manager.d.ts +0 -32
- package/dist/hooks/hook-manager.d.ts.map +0 -1
- package/dist/hooks/hook-manager.js +0 -91
- package/dist/hooks/hook-manager.js.map +0 -1
- package/dist/hooks/llm-after.d.ts +0 -8
- package/dist/hooks/llm-after.d.ts.map +0 -1
- package/dist/hooks/llm-after.js +0 -8
- package/dist/hooks/llm-after.js.map +0 -1
- package/dist/hooks/media-ingest.d.ts +0 -43
- package/dist/hooks/media-ingest.d.ts.map +0 -1
- package/dist/hooks/media-ingest.js +0 -269
- package/dist/hooks/media-ingest.js.map +0 -1
- package/dist/hooks/memory-guide.d.ts +0 -3
- package/dist/hooks/memory-guide.d.ts.map +0 -1
- package/dist/hooks/memory-guide.js +0 -47
- package/dist/hooks/memory-guide.js.map +0 -1
- package/dist/hooks/observation-capture.d.ts +0 -17
- package/dist/hooks/observation-capture.d.ts.map +0 -1
- package/dist/hooks/observation-capture.js +0 -20
- package/dist/hooks/observation-capture.js.map +0 -1
- package/dist/hooks/session-compacting.d.ts +0 -6
- package/dist/hooks/session-compacting.d.ts.map +0 -1
- package/dist/hooks/session-compacting.js +0 -6
- package/dist/hooks/session-compacting.js.map +0 -1
- package/dist/hooks/session-ending.d.ts +0 -20
- package/dist/hooks/session-ending.d.ts.map +0 -1
- package/dist/hooks/session-ending.js +0 -113
- package/dist/hooks/session-ending.js.map +0 -1
- package/dist/hooks/session-recall.d.ts +0 -2
- package/dist/hooks/session-recall.d.ts.map +0 -1
- package/dist/hooks/session-recall.js +0 -103
- package/dist/hooks/session-recall.js.map +0 -1
- package/dist/hooks/session-start.d.ts +0 -9
- package/dist/hooks/session-start.d.ts.map +0 -1
- package/dist/hooks/session-start.js +0 -42
- package/dist/hooks/session-start.js.map +0 -1
- package/dist/hooks/tool-before.d.ts +0 -10
- package/dist/hooks/tool-before.d.ts.map +0 -1
- package/dist/hooks/tool-before.js +0 -6
- package/dist/hooks/tool-before.js.map +0 -1
- package/dist/hooks/tool-executed.d.ts +0 -19
- package/dist/hooks/tool-executed.d.ts.map +0 -1
- package/dist/hooks/tool-executed.js +0 -12
- package/dist/hooks/tool-executed.js.map +0 -1
- package/dist/hooks/user-profile.d.ts +0 -2
- package/dist/hooks/user-profile.d.ts.map +0 -1
- package/dist/hooks/user-profile.js +0 -30
- package/dist/hooks/user-profile.js.map +0 -1
- package/dist/hooks/user-prompt.d.ts +0 -9
- package/dist/hooks/user-prompt.d.ts.map +0 -1
- package/dist/hooks/user-prompt.js +0 -8
- package/dist/hooks/user-prompt.js.map +0 -1
- package/dist/hooks/voice-guide.d.ts +0 -8
- package/dist/hooks/voice-guide.d.ts.map +0 -1
- package/dist/hooks/voice-guide.js +0 -101
- package/dist/hooks/voice-guide.js.map +0 -1
- package/dist/plugin.d.ts +0 -55
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -342
- package/dist/plugin.js.map +0 -1
- package/dist/tools/add-memory.d.ts +0 -17
- package/dist/tools/add-memory.d.ts.map +0 -1
- package/dist/tools/add-memory.js +0 -60
- package/dist/tools/add-memory.js.map +0 -1
- package/dist/tools/media-ask.d.ts +0 -14
- package/dist/tools/media-ask.d.ts.map +0 -1
- package/dist/tools/media-ask.js +0 -224
- package/dist/tools/media-ask.js.map +0 -1
- package/dist/tools/media-speak.d.ts +0 -16
- package/dist/tools/media-speak.d.ts.map +0 -1
- package/dist/tools/media-speak.js +0 -78
- package/dist/tools/media-speak.js.map +0 -1
- package/dist/tools/media-upload.d.ts +0 -14
- package/dist/tools/media-upload.d.ts.map +0 -1
- package/dist/tools/media-upload.js +0 -155
- package/dist/tools/media-upload.js.map +0 -1
- package/dist/tools/python-exec.d.ts +0 -13
- package/dist/tools/python-exec.d.ts.map +0 -1
- package/dist/tools/python-exec.js +0 -99
- package/dist/tools/python-exec.js.map +0 -1
- package/dist/tools/python-restart.d.ts +0 -11
- package/dist/tools/python-restart.d.ts.map +0 -1
- package/dist/tools/python-restart.js +0 -33
- package/dist/tools/python-restart.js.map +0 -1
- package/dist/utils/circuit-breaker.d.ts +0 -23
- package/dist/utils/circuit-breaker.d.ts.map +0 -1
- package/dist/utils/circuit-breaker.js +0 -75
- package/dist/utils/circuit-breaker.js.map +0 -1
- package/dist/utils/config-loader.d.ts +0 -20
- package/dist/utils/config-loader.d.ts.map +0 -1
- package/dist/utils/config-loader.js +0 -194
- package/dist/utils/config-loader.js.map +0 -1
- package/dist/utils/fallback.d.ts +0 -7
- package/dist/utils/fallback.d.ts.map +0 -1
- package/dist/utils/fallback.js +0 -20
- package/dist/utils/fallback.js.map +0 -1
- package/dist/utils/git.d.ts +0 -24
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js +0 -71
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/github.d.ts +0 -37
- package/dist/utils/github.d.ts.map +0 -1
- package/dist/utils/github.js +0 -53
- package/dist/utils/github.js.map +0 -1
- package/dist/utils/global-path.d.ts +0 -2
- package/dist/utils/global-path.d.ts.map +0 -1
- package/dist/utils/global-path.js +0 -32
- package/dist/utils/global-path.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -6
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -69
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/obs-capture.d.ts +0 -7
- package/dist/utils/obs-capture.d.ts.map +0 -1
- package/dist/utils/obs-capture.js +0 -49
- package/dist/utils/obs-capture.js.map +0 -1
- package/dist/utils/retry.d.ts +0 -11
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js +0 -45
- package/dist/utils/retry.js.map +0 -1
- package/dist/utils/self-wiring.d.ts +0 -13
- package/dist/utils/self-wiring.d.ts.map +0 -1
- package/dist/utils/self-wiring.js +0 -86
- package/dist/utils/self-wiring.js.map +0 -1
- package/dist/utils/state.d.ts +0 -106
- package/dist/utils/state.d.ts.map +0 -1
- package/dist/utils/state.js +0 -166
- package/dist/utils/state.js.map +0 -1
- package/dist/utils/status.d.ts +0 -47
- package/dist/utils/status.d.ts.map +0 -1
- package/dist/utils/status.js +0 -147
- package/dist/utils/status.js.map +0 -1
- package/dist/utils/ttl-map.d.ts +0 -17
- package/dist/utils/ttl-map.d.ts.map +0 -1
- package/dist/utils/ttl-map.js +0 -67
- package/dist/utils/ttl-map.js.map +0 -1
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
# Asset Approval Checklist
|
|
2
|
-
|
|
3
|
-
Comprehensive checklist for reviewing marketing assets before approval.
|
|
4
|
-
|
|
5
|
-
## Quick Review
|
|
6
|
-
|
|
7
|
-
Before detailed review, verify:
|
|
8
|
-
- [ ] Asset serves stated purpose
|
|
9
|
-
- [ ] Target audience appropriate
|
|
10
|
-
- [ ] No obvious errors or issues
|
|
11
|
-
- [ ] Aligns with campaign goals
|
|
12
|
-
|
|
13
|
-
## Visual Elements
|
|
14
|
-
|
|
15
|
-
### Logo Usage
|
|
16
|
-
- [ ] Correct logo variant for context
|
|
17
|
-
- [ ] Proper clear space maintained
|
|
18
|
-
- [ ] Minimum size requirements met
|
|
19
|
-
- [ ] Approved colors only
|
|
20
|
-
- [ ] No unauthorized modifications
|
|
21
|
-
- [ ] Appropriate for background
|
|
22
|
-
|
|
23
|
-
### Color Compliance
|
|
24
|
-
- [ ] Uses brand palette colors only
|
|
25
|
-
- [ ] Primary/secondary ratio appropriate (60/30/10)
|
|
26
|
-
- [ ] Semantic colors used correctly
|
|
27
|
-
- [ ] No off-brand colors introduced
|
|
28
|
-
- [ ] Consistent across all elements
|
|
29
|
-
|
|
30
|
-
### Typography
|
|
31
|
-
- [ ] Brand fonts used throughout
|
|
32
|
-
- [ ] Correct font weights applied
|
|
33
|
-
- [ ] Proper type hierarchy
|
|
34
|
-
- [ ] Appropriate sizes for medium
|
|
35
|
-
- [ ] Line heights adequate
|
|
36
|
-
- [ ] No orphans/widows in body text
|
|
37
|
-
|
|
38
|
-
### Imagery
|
|
39
|
-
- [ ] Matches brand photography style
|
|
40
|
-
- [ ] Appropriate subjects/content
|
|
41
|
-
- [ ] Quality meets requirements
|
|
42
|
-
- [ ] Properly licensed/credited
|
|
43
|
-
- [ ] Optimized for intended use
|
|
44
|
-
|
|
45
|
-
## Accessibility
|
|
46
|
-
|
|
47
|
-
### Visual Accessibility
|
|
48
|
-
- [ ] Text contrast ratio >= 4.5:1 (AA)
|
|
49
|
-
- [ ] Large text contrast >= 3:1
|
|
50
|
-
- [ ] Interactive elements have visible focus
|
|
51
|
-
- [ ] Color not sole indicator of meaning
|
|
52
|
-
- [ ] Alt text for all images
|
|
53
|
-
|
|
54
|
-
### Content Accessibility
|
|
55
|
-
- [ ] Clear and scannable layout
|
|
56
|
-
- [ ] Readable font sizes
|
|
57
|
-
- [ ] Logical reading order
|
|
58
|
-
- [ ] Meaningful headings structure
|
|
59
|
-
- [ ] Links describe destination
|
|
60
|
-
|
|
61
|
-
## Content Quality
|
|
62
|
-
|
|
63
|
-
### Copy Review
|
|
64
|
-
- [ ] Matches brand voice
|
|
65
|
-
- [ ] Appropriate tone for context
|
|
66
|
-
- [ ] No prohibited terms used
|
|
67
|
-
- [ ] Value proposition clear
|
|
68
|
-
- [ ] CTA compelling and clear
|
|
69
|
-
- [ ] Proofread for errors
|
|
70
|
-
|
|
71
|
-
### Messaging
|
|
72
|
-
- [ ] Aligns with key messages
|
|
73
|
-
- [ ] Differentiators highlighted
|
|
74
|
-
- [ ] Benefits over features
|
|
75
|
-
- [ ] Target audience addressed
|
|
76
|
-
- [ ] No conflicting claims
|
|
77
|
-
|
|
78
|
-
## Technical Requirements
|
|
79
|
-
|
|
80
|
-
### File Specifications
|
|
81
|
-
- [ ] Correct file format
|
|
82
|
-
- [ ] Appropriate resolution
|
|
83
|
-
- [ ] File size optimized
|
|
84
|
-
- [ ] Proper naming convention
|
|
85
|
-
- [ ] Metadata included
|
|
86
|
-
|
|
87
|
-
### Platform Requirements
|
|
88
|
-
| Platform | Verified |
|
|
89
|
-
|----------|----------|
|
|
90
|
-
| Instagram | [ ] Correct dimensions |
|
|
91
|
-
| Twitter/X | [ ] Meets requirements |
|
|
92
|
-
| LinkedIn | [ ] Professional standards |
|
|
93
|
-
| Facebook | [ ] Guidelines compliant |
|
|
94
|
-
| Email | [ ] Size under 1MB |
|
|
95
|
-
| Web | [ ] Optimized for web |
|
|
96
|
-
|
|
97
|
-
## Legal & Compliance
|
|
98
|
-
|
|
99
|
-
### Intellectual Property
|
|
100
|
-
- [ ] Stock images licensed
|
|
101
|
-
- [ ] Music/audio cleared
|
|
102
|
-
- [ ] No trademark violations
|
|
103
|
-
- [ ] User content authorized
|
|
104
|
-
- [ ] Credits included where needed
|
|
105
|
-
|
|
106
|
-
### Regulatory
|
|
107
|
-
- [ ] Required disclosures present
|
|
108
|
-
- [ ] No misleading claims
|
|
109
|
-
- [ ] Pricing accurate
|
|
110
|
-
- [ ] Terms linked where needed
|
|
111
|
-
- [ ] Privacy compliant
|
|
112
|
-
|
|
113
|
-
## Review Status
|
|
114
|
-
|
|
115
|
-
### Reviewer Sign-off
|
|
116
|
-
|
|
117
|
-
| Review Area | Reviewer | Date | Status |
|
|
118
|
-
|-------------|----------|------|--------|
|
|
119
|
-
| Visual Design | | | [ ] Pass / [ ] Revisions |
|
|
120
|
-
| Copy/Content | | | [ ] Pass / [ ] Revisions |
|
|
121
|
-
| Brand Compliance | | | [ ] Pass / [ ] Revisions |
|
|
122
|
-
| Technical | | | [ ] Pass / [ ] Revisions |
|
|
123
|
-
| Legal | | | [ ] Pass / [ ] Revisions |
|
|
124
|
-
|
|
125
|
-
### Final Approval
|
|
126
|
-
|
|
127
|
-
- [ ] All review areas passed
|
|
128
|
-
- [ ] Revisions completed (if any)
|
|
129
|
-
- [ ] Final version uploaded
|
|
130
|
-
- [ ] Metadata updated
|
|
131
|
-
- [ ] Ready for publish/use
|
|
132
|
-
|
|
133
|
-
**Approved By:** _______________
|
|
134
|
-
|
|
135
|
-
**Date:** _______________
|
|
136
|
-
|
|
137
|
-
**Version:** _______________
|
|
138
|
-
|
|
139
|
-
## Common Issues & Fixes
|
|
140
|
-
|
|
141
|
-
| Issue | Fix |
|
|
142
|
-
|-------|-----|
|
|
143
|
-
| Logo too small | Increase to minimum size |
|
|
144
|
-
| Wrong font | Replace with brand font |
|
|
145
|
-
| Low contrast | Adjust colors for accessibility |
|
|
146
|
-
| Off-brand color | Replace with palette color |
|
|
147
|
-
| Blurry image | Use higher resolution source |
|
|
148
|
-
| Missing alt text | Add descriptive alt text |
|
|
149
|
-
| Weak CTA | Strengthen action-oriented copy |
|
|
150
|
-
|
|
151
|
-
## Automation Support
|
|
152
|
-
|
|
153
|
-
The `validate-asset.cjs` script can auto-check:
|
|
154
|
-
- Color palette compliance
|
|
155
|
-
- Minimum dimensions
|
|
156
|
-
- File format/size
|
|
157
|
-
- Naming convention
|
|
158
|
-
- Basic metadata
|
|
159
|
-
|
|
160
|
-
Run: `node .claude/skills/brand/scripts/validate-asset.cjs <asset-path>`
|
|
161
|
-
|
|
162
|
-
## Archival
|
|
163
|
-
|
|
164
|
-
After approval:
|
|
165
|
-
1. Update asset status in manifest.json
|
|
166
|
-
2. Add approver and timestamp
|
|
167
|
-
3. Move previous versions to archive
|
|
168
|
-
4. Update campaign tracking
|
|
169
|
-
5. Notify relevant teams
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
# Asset Organization Guide
|
|
2
|
-
|
|
3
|
-
Guidelines for organizing marketing assets in a structured, searchable system.
|
|
4
|
-
|
|
5
|
-
## Directory Structure
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
project-root/
|
|
9
|
-
├── .assets/ # Git-tracked metadata
|
|
10
|
-
│ ├── manifest.json # Central asset registry
|
|
11
|
-
│ ├── tags.json # Tagging system
|
|
12
|
-
│ ├── versions/ # Version history
|
|
13
|
-
│ │ └── {asset-id}/
|
|
14
|
-
│ │ └── v{n}.json
|
|
15
|
-
│ └── metadata/ # Type-specific metadata
|
|
16
|
-
│ ├── designs.json
|
|
17
|
-
│ ├── banners.json
|
|
18
|
-
│ ├── logos.json
|
|
19
|
-
│ └── videos.json
|
|
20
|
-
├── assets/ # Raw files
|
|
21
|
-
│ ├── designs/
|
|
22
|
-
│ │ ├── campaigns/ # Campaign-specific designs
|
|
23
|
-
│ │ ├── web/ # Website graphics
|
|
24
|
-
│ │ └── print/ # Print materials
|
|
25
|
-
│ ├── banners/
|
|
26
|
-
│ │ ├── social-media/ # Platform banners
|
|
27
|
-
│ │ ├── email-headers/ # Email template headers
|
|
28
|
-
│ │ └── landing-pages/ # Hero/section images
|
|
29
|
-
│ ├── logos/
|
|
30
|
-
│ │ ├── full-horizontal/ # Full logo with wordmark
|
|
31
|
-
│ │ ├── icon-only/ # Symbol only
|
|
32
|
-
│ │ ├── monochrome/ # Single color versions
|
|
33
|
-
│ │ └── variations/ # Special versions
|
|
34
|
-
│ ├── videos/
|
|
35
|
-
│ │ ├── ads/ # Promotional videos
|
|
36
|
-
│ │ ├── tutorials/ # How-to content
|
|
37
|
-
│ │ └── testimonials/ # Customer videos
|
|
38
|
-
│ ├── infographics/ # Data visualizations
|
|
39
|
-
│ └── generated/ # AI-generated assets
|
|
40
|
-
│ └── {YYYYMMDD}/ # Date-organized
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Naming Convention
|
|
44
|
-
|
|
45
|
-
### Format
|
|
46
|
-
```
|
|
47
|
-
{type}_{campaign}_{description}_{timestamp}_{variant}.{ext}
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Components
|
|
51
|
-
| Component | Format | Required | Examples |
|
|
52
|
-
|-----------|--------|----------|----------|
|
|
53
|
-
| type | lowercase | Yes | banner, logo, design, video |
|
|
54
|
-
| campaign | kebab-case | Yes* | claude-launch, q1-promo, evergreen |
|
|
55
|
-
| description | kebab-case | Yes | hero-image, email-header |
|
|
56
|
-
| timestamp | YYYYMMDD | Yes | 20251209 |
|
|
57
|
-
| variant | kebab-case | No | dark-mode, 1x1, mobile |
|
|
58
|
-
|
|
59
|
-
*Use "evergreen" for non-campaign assets
|
|
60
|
-
|
|
61
|
-
### Examples
|
|
62
|
-
```
|
|
63
|
-
banner_claude-launch_hero-image_20251209_16-9.png
|
|
64
|
-
logo_brand-refresh_horizontal-full-color_20251209.svg
|
|
65
|
-
design_holiday-campaign_email-hero_20251209_dark-mode.psd
|
|
66
|
-
video_product-demo_feature-walkthrough_20251209.mp4
|
|
67
|
-
infographic_evergreen_pricing-comparison_20251209.png
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Metadata Schema
|
|
71
|
-
|
|
72
|
-
### Asset Entry (manifest.json)
|
|
73
|
-
```json
|
|
74
|
-
{
|
|
75
|
-
"id": "uuid-v4",
|
|
76
|
-
"name": "Campaign Hero Banner",
|
|
77
|
-
"type": "banner",
|
|
78
|
-
"path": "assets/banners/landing-pages/banner_claude-launch_hero-image_20251209.png",
|
|
79
|
-
"dimensions": { "width": 1920, "height": 1080 },
|
|
80
|
-
"fileSize": 245760,
|
|
81
|
-
"mimeType": "image/png",
|
|
82
|
-
"tags": ["campaign", "hero", "launch"],
|
|
83
|
-
"status": "approved",
|
|
84
|
-
"source": {
|
|
85
|
-
"model": "imagen-4",
|
|
86
|
-
"prompt": "...",
|
|
87
|
-
"createdAt": "2025-12-09T10:30:00Z"
|
|
88
|
-
},
|
|
89
|
-
"version": 2,
|
|
90
|
-
"createdBy": "agent:content-creator",
|
|
91
|
-
"approvedBy": "user:john",
|
|
92
|
-
"approvedAt": "2025-12-09T14:00:00Z"
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### Version Entry (versions/{id}/v{n}.json)
|
|
97
|
-
```json
|
|
98
|
-
{
|
|
99
|
-
"version": 2,
|
|
100
|
-
"previousVersion": 1,
|
|
101
|
-
"path": "assets/banners/landing-pages/banner_claude-launch_hero-image_20251209_v2.png",
|
|
102
|
-
"changes": "Updated CTA button color to match brand refresh",
|
|
103
|
-
"createdAt": "2025-12-09T12:00:00Z",
|
|
104
|
-
"createdBy": "agent:ui-designer"
|
|
105
|
-
}
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## Tagging System
|
|
109
|
-
|
|
110
|
-
### Standard Tags
|
|
111
|
-
| Category | Values |
|
|
112
|
-
|----------|--------|
|
|
113
|
-
| status | draft, review, approved, archived |
|
|
114
|
-
| platform | instagram, twitter, linkedin, facebook, youtube, email, web |
|
|
115
|
-
| content-type | promotional, educational, brand, product, testimonial |
|
|
116
|
-
| format | 1x1, 4x5, 9x16, 16x9, story, reel, banner |
|
|
117
|
-
| source | imagen-4, veo-3, user-upload, canva, figma |
|
|
118
|
-
|
|
119
|
-
### Tag Usage
|
|
120
|
-
- Each asset should have: status + platform + content-type
|
|
121
|
-
- Optional: format, source, campaign
|
|
122
|
-
|
|
123
|
-
## File Organization Best Practices
|
|
124
|
-
|
|
125
|
-
1. **One file per variant** - Don't combine dark/light in one file
|
|
126
|
-
2. **Source files separate** - Keep .psd/.fig in same structure
|
|
127
|
-
3. **AI assets timestamped** - Auto-organize by generation date
|
|
128
|
-
4. **Archive don't delete** - Move to `archived/` with date prefix
|
|
129
|
-
5. **Large files external** - Videos > 100MB use cloud storage links
|
|
130
|
-
|
|
131
|
-
## Search Patterns
|
|
132
|
-
|
|
133
|
-
### By Type
|
|
134
|
-
```bash
|
|
135
|
-
# Find all banners
|
|
136
|
-
ls assets/banners/**/*
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### By Campaign
|
|
140
|
-
```bash
|
|
141
|
-
# Find all assets for specific campaign
|
|
142
|
-
grep -l "claude-launch" .assets/manifest.json
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### By Status
|
|
146
|
-
```bash
|
|
147
|
-
# Find approved assets only
|
|
148
|
-
jq '.assets[] | select(.status == "approved")' .assets/manifest.json
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## Cleanup Workflow
|
|
152
|
-
|
|
153
|
-
1. Run `extract-colors.cjs` on new assets
|
|
154
|
-
2. Validate against brand guidelines
|
|
155
|
-
3. Update manifest.json with new entries
|
|
156
|
-
4. Tag appropriately
|
|
157
|
-
5. Remove duplicates/outdated versions
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
# Brand Guidelines Template
|
|
2
|
-
|
|
3
|
-
Use this template to create comprehensive brand guidelines for any project.
|
|
4
|
-
|
|
5
|
-
## Document Structure
|
|
6
|
-
|
|
7
|
-
```markdown
|
|
8
|
-
# Brand Guidelines v{X.Y}
|
|
9
|
-
|
|
10
|
-
## Quick Reference
|
|
11
|
-
- **Primary Color:** #XXXXXX
|
|
12
|
-
- **Secondary Color:** #XXXXXX
|
|
13
|
-
- **Primary Font:** {font-family}
|
|
14
|
-
- **Voice:** {3 key traits}
|
|
15
|
-
|
|
16
|
-
## 1. Color Palette
|
|
17
|
-
|
|
18
|
-
### Primary Colors
|
|
19
|
-
| Name | Hex | RGB | Usage |
|
|
20
|
-
|------|-----|-----|-------|
|
|
21
|
-
| {Name} | #{hex} | rgb({r},{g},{b}) | Primary brand color, CTAs, headers |
|
|
22
|
-
| {Name} | #{hex} | rgb({r},{g},{b}) | Supporting accent |
|
|
23
|
-
|
|
24
|
-
### Secondary Colors
|
|
25
|
-
| Name | Hex | RGB | Usage |
|
|
26
|
-
|------|-----|-----|-------|
|
|
27
|
-
| {Name} | #{hex} | rgb({r},{g},{b}) | Secondary elements |
|
|
28
|
-
| {Name} | #{hex} | rgb({r},{g},{b}) | Highlights |
|
|
29
|
-
|
|
30
|
-
### Neutral Palette
|
|
31
|
-
| Name | Hex | RGB | Usage |
|
|
32
|
-
|------|-----|-----|-------|
|
|
33
|
-
| Background | #{hex} | rgb({r},{g},{b}) | Page backgrounds |
|
|
34
|
-
| Text Primary | #{hex} | rgb({r},{g},{b}) | Body text |
|
|
35
|
-
| Text Secondary | #{hex} | rgb({r},{g},{b}) | Captions, muted text |
|
|
36
|
-
| Border | #{hex} | rgb({r},{g},{b}) | Dividers, borders |
|
|
37
|
-
|
|
38
|
-
### Accessibility
|
|
39
|
-
- Text/Background Contrast: {ratio}:1 (WCAG {level})
|
|
40
|
-
- CTA Contrast: {ratio}:1
|
|
41
|
-
- All interactive elements meet WCAG 2.1 AA
|
|
42
|
-
|
|
43
|
-
## 2. Typography
|
|
44
|
-
|
|
45
|
-
### Font Stack
|
|
46
|
-
```css
|
|
47
|
-
--font-heading: '{Font}', sans-serif;
|
|
48
|
-
--font-body: '{Font}', sans-serif;
|
|
49
|
-
--font-mono: '{Font}', monospace;
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Type Scale
|
|
53
|
-
| Element | Font | Weight | Size (Desktop/Mobile) | Line Height |
|
|
54
|
-
|---------|------|--------|----------------------|-------------|
|
|
55
|
-
| H1 | {font} | 700 | 48px / 32px | 1.2 |
|
|
56
|
-
| H2 | {font} | 600 | 36px / 28px | 1.25 |
|
|
57
|
-
| H3 | {font} | 600 | 28px / 24px | 1.3 |
|
|
58
|
-
| H4 | {font} | 600 | 24px / 20px | 1.35 |
|
|
59
|
-
| Body | {font} | 400 | 16px / 16px | 1.5 |
|
|
60
|
-
| Small | {font} | 400 | 14px / 14px | 1.5 |
|
|
61
|
-
| Caption | {font} | 400 | 12px / 12px | 1.4 |
|
|
62
|
-
|
|
63
|
-
## 3. Logo Usage
|
|
64
|
-
|
|
65
|
-
### Variants
|
|
66
|
-
- **Primary:** Full horizontal logo with wordmark
|
|
67
|
-
- **Stacked:** Vertical arrangement for square spaces
|
|
68
|
-
- **Icon:** Symbol only for favicons, app icons
|
|
69
|
-
- **Monochrome:** Single color for limited palettes
|
|
70
|
-
|
|
71
|
-
### Clear Space
|
|
72
|
-
Minimum clear space = height of logo mark
|
|
73
|
-
|
|
74
|
-
### Minimum Size
|
|
75
|
-
- Digital: 80px width minimum
|
|
76
|
-
- Print: 25mm width minimum
|
|
77
|
-
|
|
78
|
-
### Don'ts
|
|
79
|
-
- Don't rotate or skew
|
|
80
|
-
- Don't change colors outside approved palette
|
|
81
|
-
- Don't add effects (shadows, gradients)
|
|
82
|
-
- Don't crop or modify proportions
|
|
83
|
-
- Don't place on busy backgrounds
|
|
84
|
-
|
|
85
|
-
## 4. Voice & Tone
|
|
86
|
-
|
|
87
|
-
### Brand Personality
|
|
88
|
-
{Trait 1}: {Description}
|
|
89
|
-
{Trait 2}: {Description}
|
|
90
|
-
{Trait 3}: {Description}
|
|
91
|
-
|
|
92
|
-
### Voice Chart
|
|
93
|
-
| Trait | We Are | We Are Not |
|
|
94
|
-
|-------|--------|------------|
|
|
95
|
-
| {Trait} | {Description} | {Anti-description} |
|
|
96
|
-
|
|
97
|
-
### Tone by Context
|
|
98
|
-
| Context | Tone | Example |
|
|
99
|
-
|---------|------|---------|
|
|
100
|
-
| Marketing | {tone} | "{example}" |
|
|
101
|
-
| Support | {tone} | "{example}" |
|
|
102
|
-
| Error Messages | {tone} | "{example}" |
|
|
103
|
-
| Success | {tone} | "{example}" |
|
|
104
|
-
|
|
105
|
-
### Prohibited Terms
|
|
106
|
-
- {term 1} (reason)
|
|
107
|
-
- {term 2} (reason)
|
|
108
|
-
|
|
109
|
-
## 5. Imagery Guidelines
|
|
110
|
-
|
|
111
|
-
### Photography Style
|
|
112
|
-
- {Lighting preference}
|
|
113
|
-
- {Subject guidelines}
|
|
114
|
-
- {Color treatment}
|
|
115
|
-
|
|
116
|
-
### Illustrations
|
|
117
|
-
- Style: {description}
|
|
118
|
-
- Colors: Brand palette only
|
|
119
|
-
- Stroke: {weight}px
|
|
120
|
-
|
|
121
|
-
### Icons
|
|
122
|
-
- Style: {outlined/filled/duotone}
|
|
123
|
-
- Size: 24px base grid
|
|
124
|
-
- Corner radius: {value}px
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
## Usage
|
|
128
|
-
|
|
129
|
-
1. Copy template above
|
|
130
|
-
2. Fill in brand-specific values
|
|
131
|
-
3. Save as `docs/brand-guidelines.md`
|
|
132
|
-
4. Reference in content workflows
|
|
133
|
-
|
|
134
|
-
## Extractable Fields
|
|
135
|
-
|
|
136
|
-
Scripts can extract:
|
|
137
|
-
- `colors.primary`, `colors.secondary`, `colors.neutral`
|
|
138
|
-
- `typography.heading`, `typography.body`
|
|
139
|
-
- `voice.traits`, `voice.prohibited`
|
|
140
|
-
- `logo.variants`, `logo.minSize`
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
# Color Palette Management
|
|
2
|
-
|
|
3
|
-
Guidelines for defining, extracting, and enforcing brand colors.
|
|
4
|
-
|
|
5
|
-
## Color System Structure
|
|
6
|
-
|
|
7
|
-
### Hierarchy
|
|
8
|
-
```
|
|
9
|
-
Primary Colors (1-2)
|
|
10
|
-
├── Main brand color - Used for CTAs, headers, key elements
|
|
11
|
-
└── Supporting primary - Secondary emphasis
|
|
12
|
-
|
|
13
|
-
Secondary Colors (2-3)
|
|
14
|
-
├── Accent colors - Highlights, interactive states
|
|
15
|
-
└── Supporting visuals - Icons, illustrations
|
|
16
|
-
|
|
17
|
-
Neutral Palette (3-5)
|
|
18
|
-
├── Background colors - Page, card, modal backgrounds
|
|
19
|
-
├── Text colors - Headings, body, muted text
|
|
20
|
-
└── UI elements - Borders, dividers, shadows
|
|
21
|
-
|
|
22
|
-
Semantic Colors (4)
|
|
23
|
-
├── Success - #22C55E (green)
|
|
24
|
-
├── Warning - #F59E0B (amber)
|
|
25
|
-
├── Error - #EF4444 (red)
|
|
26
|
-
└── Info - #3B82F6 (blue)
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Color Documentation Format
|
|
30
|
-
|
|
31
|
-
### Markdown Table
|
|
32
|
-
```markdown
|
|
33
|
-
| Name | Hex | RGB | HSL | Usage |
|
|
34
|
-
|------|-----|-----|-----|-------|
|
|
35
|
-
| Primary Blue | #2563EB | rgb(37,99,235) | hsl(217,91%,53%) | CTAs, links |
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### CSS Variables
|
|
39
|
-
```css
|
|
40
|
-
:root {
|
|
41
|
-
/* Primary */
|
|
42
|
-
--color-primary: #2563EB;
|
|
43
|
-
--color-primary-light: #3B82F6;
|
|
44
|
-
--color-primary-dark: #1D4ED8;
|
|
45
|
-
|
|
46
|
-
/* Secondary */
|
|
47
|
-
--color-secondary: #8B5CF6;
|
|
48
|
-
--color-accent: #F59E0B;
|
|
49
|
-
|
|
50
|
-
/* Neutral */
|
|
51
|
-
--color-background: #FFFFFF;
|
|
52
|
-
--color-surface: #F9FAFB;
|
|
53
|
-
--color-text-primary: #111827;
|
|
54
|
-
--color-text-secondary: #6B7280;
|
|
55
|
-
--color-border: #E5E7EB;
|
|
56
|
-
}
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Tailwind Config
|
|
60
|
-
```javascript
|
|
61
|
-
colors: {
|
|
62
|
-
primary: {
|
|
63
|
-
DEFAULT: '#2563EB',
|
|
64
|
-
50: '#EFF6FF',
|
|
65
|
-
100: '#DBEAFE',
|
|
66
|
-
500: '#3B82F6',
|
|
67
|
-
600: '#2563EB',
|
|
68
|
-
700: '#1D4ED8',
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Accessibility Requirements
|
|
74
|
-
|
|
75
|
-
### Contrast Ratios (WCAG 2.1)
|
|
76
|
-
| Level | Normal Text | Large Text | UI Components |
|
|
77
|
-
|-------|-------------|------------|---------------|
|
|
78
|
-
| AA | 4.5:1 | 3:1 | 3:1 |
|
|
79
|
-
| AAA | 7:1 | 4.5:1 | 4.5:1 |
|
|
80
|
-
|
|
81
|
-
### Checking Contrast
|
|
82
|
-
```javascript
|
|
83
|
-
// Formula for relative luminance
|
|
84
|
-
function luminance(r, g, b) {
|
|
85
|
-
const [rs, gs, bs] = [r, g, b].map(v => {
|
|
86
|
-
v /= 255;
|
|
87
|
-
return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);
|
|
88
|
-
});
|
|
89
|
-
return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function contrastRatio(l1, l2) {
|
|
93
|
-
const lighter = Math.max(l1, l2);
|
|
94
|
-
const darker = Math.min(l1, l2);
|
|
95
|
-
return (lighter + 0.05) / (darker + 0.05);
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## Color Extraction
|
|
100
|
-
|
|
101
|
-
### From Images
|
|
102
|
-
Use `extract-colors.cjs` script to:
|
|
103
|
-
1. Load image file
|
|
104
|
-
2. Extract dominant colors using k-means clustering
|
|
105
|
-
3. Map to nearest brand colors
|
|
106
|
-
4. Report compliance percentage
|
|
107
|
-
|
|
108
|
-
### From Brand Guidelines
|
|
109
|
-
Parse markdown to extract:
|
|
110
|
-
- Hex values from tables
|
|
111
|
-
- CSS variable definitions
|
|
112
|
-
- Color names and usage descriptions
|
|
113
|
-
|
|
114
|
-
## Brand Compliance Validation
|
|
115
|
-
|
|
116
|
-
### Rules
|
|
117
|
-
1. **Primary color ratio**: 60-70% of design
|
|
118
|
-
2. **Secondary color ratio**: 20-30% of design
|
|
119
|
-
3. **Accent color ratio**: 5-10% of design
|
|
120
|
-
4. **Off-brand tolerance**: Max 20% non-palette colors
|
|
121
|
-
|
|
122
|
-
### Validation Output
|
|
123
|
-
```json
|
|
124
|
-
{
|
|
125
|
-
"compliance": 85,
|
|
126
|
-
"colors": {
|
|
127
|
-
"brand": ["#2563EB", "#8B5CF6", "#FFFFFF"],
|
|
128
|
-
"offBrand": ["#FF5500"],
|
|
129
|
-
"dominant": "#2563EB"
|
|
130
|
-
},
|
|
131
|
-
"issues": [
|
|
132
|
-
"Off-brand color #FF5500 detected (15% coverage)",
|
|
133
|
-
"Primary color underused (45% vs 60% target)"
|
|
134
|
-
]
|
|
135
|
-
}
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
## Color Usage Guidelines
|
|
139
|
-
|
|
140
|
-
### Do's
|
|
141
|
-
- Use primary for main CTAs and key elements
|
|
142
|
-
- Maintain consistent hover/active states
|
|
143
|
-
- Test all combinations for accessibility
|
|
144
|
-
- Document color decisions
|
|
145
|
-
|
|
146
|
-
### Don'ts
|
|
147
|
-
- Use more than 2-3 colors in single component
|
|
148
|
-
- Mix warm and cool tones without intent
|
|
149
|
-
- Use pure black (#000) for text (use #111 or similar)
|
|
150
|
-
- Rely solely on color for meaning (use icons/text too)
|
|
151
|
-
|
|
152
|
-
## Color Palette Examples
|
|
153
|
-
|
|
154
|
-
### Tech/SaaS
|
|
155
|
-
```
|
|
156
|
-
Primary: #2563EB (Blue)
|
|
157
|
-
Secondary: #8B5CF6 (Purple)
|
|
158
|
-
Accent: #10B981 (Emerald)
|
|
159
|
-
Background: #F9FAFB
|
|
160
|
-
Text: #111827
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### Marketing/Creative
|
|
164
|
-
```
|
|
165
|
-
Primary: #F97316 (Orange)
|
|
166
|
-
Secondary: #EC4899 (Pink)
|
|
167
|
-
Accent: #14B8A6 (Teal)
|
|
168
|
-
Background: #FFFFFF
|
|
169
|
-
Text: #1F2937
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Professional/Corporate
|
|
173
|
-
```
|
|
174
|
-
Primary: #1E40AF (Navy)
|
|
175
|
-
Secondary: #475569 (Slate)
|
|
176
|
-
Accent: #0EA5E9 (Sky)
|
|
177
|
-
Background: #F8FAFC
|
|
178
|
-
Text: #0F172A
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
## Tools & Resources
|
|
182
|
-
|
|
183
|
-
- [Coolors](https://coolors.co) - Palette generation
|
|
184
|
-
- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
|
|
185
|
-
- [Tailwind Color Reference](https://tailwindcss.com/docs/customizing-colors)
|
|
186
|
-
- [Color Hunt](https://colorhunt.co) - Curated palettes
|