ima-claude 2.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/LICENSE +21 -0
- package/README.md +463 -0
- package/dist/cli.js +1064 -0
- package/package.json +49 -0
- package/platforms/claude/adapter.ts +115 -0
- package/platforms/junie/adapter.ts +254 -0
- package/platforms/junie/agents-template.md +113 -0
- package/platforms/junie/hook-translations.md +84 -0
- package/platforms/shared/detector.ts +27 -0
- package/platforms/shared/installer.ts +202 -0
- package/platforms/shared/types.ts +78 -0
- package/plugins/ima-claude/.claude-plugin/plugin.json +25 -0
- package/plugins/ima-claude/agents/explorer.md +30 -0
- package/plugins/ima-claude/agents/implementer.md +30 -0
- package/plugins/ima-claude/agents/memory.md +42 -0
- package/plugins/ima-claude/agents/reviewer.md +53 -0
- package/plugins/ima-claude/agents/tester.md +33 -0
- package/plugins/ima-claude/agents/wp-developer.md +46 -0
- package/plugins/ima-claude/hooks/README.md +145 -0
- package/plugins/ima-claude/hooks/atlassian_prereqs.py +112 -0
- package/plugins/ima-claude/hooks/block_sed_edits.py +59 -0
- package/plugins/ima-claude/hooks/bootstrap.sh +90 -0
- package/plugins/ima-claude/hooks/bootstrap_utility_check.py +94 -0
- package/plugins/ima-claude/hooks/composer_autoload_check.py +70 -0
- package/plugins/ima-claude/hooks/docs_organization.py +104 -0
- package/plugins/ima-claude/hooks/enforce_rg_over_grep.py +56 -0
- package/plugins/ima-claude/hooks/fp_utility_check.py +90 -0
- package/plugins/ima-claude/hooks/hook_logger.py +69 -0
- package/plugins/ima-claude/hooks/hooks.json +239 -0
- package/plugins/ima-claude/hooks/jira_issue_fetch.py +79 -0
- package/plugins/ima-claude/hooks/jquery_in_wordpress.py +92 -0
- package/plugins/ima-claude/hooks/memory_bootstrap.py +79 -0
- package/plugins/ima-claude/hooks/memory_store_reminder.py +75 -0
- package/plugins/ima-claude/hooks/prompt_coach.py +125 -0
- package/plugins/ima-claude/hooks/prompt_coach_digest.md +48 -0
- package/plugins/ima-claude/hooks/prompt_coach_system.md +30 -0
- package/plugins/ima-claude/hooks/sequential_thinking_check.py +81 -0
- package/plugins/ima-claude/hooks/serena_over_grep.py +96 -0
- package/plugins/ima-claude/hooks/serena_over_read.py +66 -0
- package/plugins/ima-claude/hooks/serena_project_check.py +133 -0
- package/plugins/ima-claude/hooks/sql_injection_check.py +73 -0
- package/plugins/ima-claude/hooks/task_master_after_plan.py +31 -0
- package/plugins/ima-claude/hooks/task_master_before_impl.py +93 -0
- package/plugins/ima-claude/hooks/tavily_extract_advanced.py +48 -0
- package/plugins/ima-claude/hooks/vestige_before_external.py +86 -0
- package/plugins/ima-claude/hooks/webfetch_to_tavily.py +42 -0
- package/plugins/ima-claude/hooks/websearch_to_tavily.py +41 -0
- package/plugins/ima-claude/hooks/wp_security_check.py +150 -0
- package/plugins/ima-claude/personalities/README.md +45 -0
- package/plugins/ima-claude/personalities/enable-40k.md +69 -0
- package/plugins/ima-claude/personalities/enable-templars.md +69 -0
- package/plugins/ima-claude/skills/.research-summary.md +340 -0
- package/plugins/ima-claude/skills/architect/SKILL.md +304 -0
- package/plugins/ima-claude/skills/compound-bridge/SKILL.md +200 -0
- package/plugins/ima-claude/skills/discourse/SKILL.md +440 -0
- package/plugins/ima-claude/skills/discourse-admin/SKILL.md +192 -0
- package/plugins/ima-claude/skills/discourse-admin/references/api-endpoints.md +441 -0
- package/plugins/ima-claude/skills/discourse-admin/references/gotchas.md +107 -0
- package/plugins/ima-claude/skills/discourse-admin/references/staging-defaults.md +98 -0
- package/plugins/ima-claude/skills/discourse-admin/scripts/discourse-admin.py +319 -0
- package/plugins/ima-claude/skills/docs-organize/SKILL.md +254 -0
- package/plugins/ima-claude/skills/docs-organize/templates/active-README.md +50 -0
- package/plugins/ima-claude/skills/docs-organize/templates/archive-README.md +57 -0
- package/plugins/ima-claude/skills/docs-organize/templates/docs-README.md +43 -0
- package/plugins/ima-claude/skills/docs-organize/templates/phase-archive-README.md +83 -0
- package/plugins/ima-claude/skills/docs-organize/templates/section-README.md +48 -0
- package/plugins/ima-claude/skills/docs-organize/templates/transient-README.md +79 -0
- package/plugins/ima-claude/skills/docs-organize/templates/transient-gitignore +9 -0
- package/plugins/ima-claude/skills/ember-discourse/SKILL.md +496 -0
- package/plugins/ima-claude/skills/functional-programmer/SKILL.md +258 -0
- package/plugins/ima-claude/skills/ima-bootstrap/SKILL.md +278 -0
- package/plugins/ima-claude/skills/ima-bootstrap/references/bootstrap-patterns.md +356 -0
- package/plugins/ima-claude/skills/ima-bootstrap/references/ima-brand.md +273 -0
- package/plugins/ima-claude/skills/ima-bootstrap/references/theme-integration.md +212 -0
- package/plugins/ima-claude/skills/ima-brand/SKILL.md +108 -0
- package/plugins/ima-claude/skills/ima-brand/references/brand-identity.md +140 -0
- package/plugins/ima-claude/skills/ima-brand/references/digital-standards.md +180 -0
- package/plugins/ima-claude/skills/ima-brand/references/visual-system.md +173 -0
- package/plugins/ima-claude/skills/ima-forms-expert/SKILL.md +175 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/container-components.md +154 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/examples.md +328 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/field-components.md +298 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/form-factory.md +193 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/quick-reference.md +153 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/validation-engine.md +336 -0
- package/plugins/ima-claude/skills/jira-checkpoint/SKILL.md +178 -0
- package/plugins/ima-claude/skills/jquery/SKILL.md +413 -0
- package/plugins/ima-claude/skills/js-fp/SKILL.md +463 -0
- package/plugins/ima-claude/skills/js-fp/core-principles.md +487 -0
- package/plugins/ima-claude/skills/js-fp/examples/pure-functions.js +260 -0
- package/plugins/ima-claude/skills/js-fp/examples/tests/pure-functions.test.js +262 -0
- package/plugins/ima-claude/skills/js-fp/references/anti-patterns.md +120 -0
- package/plugins/ima-claude/skills/js-fp/references/performance-patterns.md +116 -0
- package/plugins/ima-claude/skills/js-fp/references/testing-patterns.md +134 -0
- package/plugins/ima-claude/skills/js-fp-api/SKILL.md +280 -0
- package/plugins/ima-claude/skills/js-fp-api/examples/crud-endpoint.js +258 -0
- package/plugins/ima-claude/skills/js-fp-api/references/middleware-patterns.md +134 -0
- package/plugins/ima-claude/skills/js-fp-api/references/security-sql.md +110 -0
- package/plugins/ima-claude/skills/js-fp-api/references/validation-patterns.md +165 -0
- package/plugins/ima-claude/skills/js-fp-react/SKILL.md +447 -0
- package/plugins/ima-claude/skills/js-fp-react/examples/ProductCard.tsx +65 -0
- package/plugins/ima-claude/skills/js-fp-react/references/hooks-advanced.md +136 -0
- package/plugins/ima-claude/skills/js-fp-react/references/performance-patterns.md +175 -0
- package/plugins/ima-claude/skills/js-fp-vue/SKILL.md +322 -0
- package/plugins/ima-claude/skills/js-fp-vue/references/complete-examples.md +397 -0
- package/plugins/ima-claude/skills/js-fp-vue/references/composables-advanced.md +282 -0
- package/plugins/ima-claude/skills/js-fp-vue/references/reactivity-patterns.md +348 -0
- package/plugins/ima-claude/skills/js-fp-vue/references/testing.md +314 -0
- package/plugins/ima-claude/skills/js-fp-wordpress/SKILL.md +301 -0
- package/plugins/ima-claude/skills/js-fp-wordpress/references/ajax-patterns.md +192 -0
- package/plugins/ima-claude/skills/js-fp-wordpress/references/event-patterns.md +136 -0
- package/plugins/ima-claude/skills/js-fp-wordpress/references/wp-integration.md +248 -0
- package/plugins/ima-claude/skills/livecanvas/SKILL.md +209 -0
- package/plugins/ima-claude/skills/livecanvas/references/livecanvas-features.md +311 -0
- package/plugins/ima-claude/skills/livecanvas/references/loops-and-logic.md +730 -0
- package/plugins/ima-claude/skills/livecanvas/references/picostrap.md +227 -0
- package/plugins/ima-claude/skills/mcp-atlassian/SKILL.md +339 -0
- package/plugins/ima-claude/skills/mcp-context7/SKILL.md +109 -0
- package/plugins/ima-claude/skills/mcp-memory/SKILL.md +182 -0
- package/plugins/ima-claude/skills/mcp-qdrant/SKILL.md +233 -0
- package/plugins/ima-claude/skills/mcp-sequential/SKILL.md +149 -0
- package/plugins/ima-claude/skills/mcp-serena/SKILL.md +174 -0
- package/plugins/ima-claude/skills/mcp-tavily/SKILL.md +118 -0
- package/plugins/ima-claude/skills/mcp-vestige/SKILL.md +259 -0
- package/plugins/ima-claude/skills/php-authnet/SKILL.md +275 -0
- package/plugins/ima-claude/skills/php-authnet/references/api-reference.md +624 -0
- package/plugins/ima-claude/skills/php-authnet/references/sandbox-testing.md +424 -0
- package/plugins/ima-claude/skills/php-fp/SKILL.md +333 -0
- package/plugins/ima-claude/skills/php-fp/examples/pure-functions.php +403 -0
- package/plugins/ima-claude/skills/php-fp/examples/tests/PureFunctionsTest.php +515 -0
- package/plugins/ima-claude/skills/php-fp/references/core-principles.md +277 -0
- package/plugins/ima-claude/skills/php-fp/references/testing-patterns.md +374 -0
- package/plugins/ima-claude/skills/php-fp-wordpress/SKILL.md +216 -0
- package/plugins/ima-claude/skills/php-fp-wordpress/references/fp-patterns.md +275 -0
- package/plugins/ima-claude/skills/php-fp-wordpress/references/plugin-architecture.md +295 -0
- package/plugins/ima-claude/skills/php-fp-wordpress/references/security-examples.md +203 -0
- package/plugins/ima-claude/skills/php-fp-wordpress/references/testing-strategy.md +259 -0
- package/plugins/ima-claude/skills/phpunit-wp/SKILL.md +716 -0
- package/plugins/ima-claude/skills/playwright/SKILL.md +434 -0
- package/plugins/ima-claude/skills/playwright/references/accessibility-testing.md +153 -0
- package/plugins/ima-claude/skills/playwright/references/ci-cd.md +268 -0
- package/plugins/ima-claude/skills/playwright/references/network-mocking.md +270 -0
- package/plugins/ima-claude/skills/playwright/references/visual-regression.md +215 -0
- package/plugins/ima-claude/skills/py-fp/SKILL.md +663 -0
- package/plugins/ima-claude/skills/py-fp/examples/pure-functions.py +185 -0
- package/plugins/ima-claude/skills/py-fp/examples/tests/test_pure_functions.py +244 -0
- package/plugins/ima-claude/skills/py-fp/references/core-principles.md +381 -0
- package/plugins/ima-claude/skills/py-fp/references/testing-patterns.md +283 -0
- package/plugins/ima-claude/skills/quasar-fp/SKILL.md +327 -0
- package/plugins/ima-claude/skills/quasar-fp/metadata.json +85 -0
- package/plugins/ima-claude/skills/quasar-fp/references/component-patterns.md +257 -0
- package/plugins/ima-claude/skills/quasar-fp/references/theme-integration.md +233 -0
- package/plugins/ima-claude/skills/quasar-fp/references/utility-classes.md +237 -0
- package/plugins/ima-claude/skills/quickstart/SKILL.md +129 -0
- package/plugins/ima-claude/skills/rails/SKILL.md +359 -0
- package/plugins/ima-claude/skills/resume-session/SKILL.md +68 -0
- package/plugins/ima-claude/skills/rg/SKILL.md +205 -0
- package/plugins/ima-claude/skills/ruby-fp/SKILL.md +336 -0
- package/plugins/ima-claude/skills/save-session/SKILL.md +81 -0
- package/plugins/ima-claude/skills/scorecard/SKILL.md +96 -0
- package/plugins/ima-claude/skills/skill-analyzer/SKILL.md +127 -0
- package/plugins/ima-claude/skills/skill-analyzer/references/advanced-checklist.md +44 -0
- package/plugins/ima-claude/skills/skill-analyzer/references/core-checklist.md +60 -0
- package/plugins/ima-claude/skills/skill-analyzer/scripts/analyze_skill.py +418 -0
- package/plugins/ima-claude/skills/skill-creator/LICENSE.txt +202 -0
- package/plugins/ima-claude/skills/skill-creator/SKILL.md +343 -0
- package/plugins/ima-claude/skills/skill-creator/references/output-patterns.md +82 -0
- package/plugins/ima-claude/skills/skill-creator/references/workflows.md +28 -0
- package/plugins/ima-claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/plugins/ima-claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/plugins/ima-claude/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/plugins/ima-claude/skills/task-master/SKILL.md +51 -0
- package/plugins/ima-claude/skills/task-planner/SKILL.md +228 -0
- package/plugins/ima-claude/skills/task-runner/SKILL.md +192 -0
- package/plugins/ima-claude/skills/unit-testing/SKILL.md +198 -0
- package/plugins/ima-claude/skills/unit-testing/references/mock-patterns.md +181 -0
- package/plugins/ima-claude/skills/unit-testing/references/tdd-workflow.md +177 -0
- package/plugins/ima-claude/skills/unit-testing/references/test-strategy.md +126 -0
- package/plugins/ima-claude/skills/wp-local/SKILL.md +246 -0
- package/plugins/ima-claude/skills/wp-local/references/configuration.md +198 -0
- package/plugins/ima-claude/skills/wp-local/references/wp-cli-reference.md +406 -0
- package/plugins/ima-claude/skills/wp-local/scripts/wp-local.sh +61 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Theme Integration Reference
|
|
2
|
+
|
|
3
|
+
How IMA brand integrates with Bootstrap 5.3 via the Picostrap5 child theme.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## SCSS Pipeline
|
|
8
|
+
|
|
9
|
+
The compilation order is critical — variables must be set before Bootstrap reads them.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
main.scss
|
|
13
|
+
├── _bootstrap-loader.scss ← Bootstrap import chain
|
|
14
|
+
│ ├── bootstrap5/functions ← 1. Bootstrap functions
|
|
15
|
+
│ ├── ninjabootstrap/variables ← 2. Picostrap parent theme vars
|
|
16
|
+
│ ├── _theme_variables.scss ← 3. OUR OVERRIDES (loads IMA brand)
|
|
17
|
+
│ │ └── @import ima-brand/sass/brand ← IMA colors, typography, spacing
|
|
18
|
+
│ ├── bootstrap5/variables ← 4. Bootstrap defaults (our values take precedence)
|
|
19
|
+
│ ├── bootstrap5/variables-dark ← 5. Dark mode variables
|
|
20
|
+
│ ├── bootstrap5/maps ← 6. Sass maps
|
|
21
|
+
│ ├── bootstrap5/mixins ← 7. Mixins
|
|
22
|
+
│ ├── bootstrap5/root ← 8. CSS custom properties
|
|
23
|
+
│ ├── bootstrap5/utilities ← 9. Utility definitions
|
|
24
|
+
│ ├── [all Bootstrap components] ← 10. Component styles
|
|
25
|
+
│ ├── ninjabootstrap/* ← 11. Picostrap extensions
|
|
26
|
+
│ └── bootstrap5/utilities/api ← 12. Generates utility classes
|
|
27
|
+
├── _wp_basic_styles.scss ← WordPress basics
|
|
28
|
+
├── _picostrap.scss ← Parent theme styles
|
|
29
|
+
├── _woocommerce.scss ← WooCommerce styles
|
|
30
|
+
└── _custom.scss ← OUR CUSTOM STYLES (last = highest priority)
|
|
31
|
+
├── plugins/ima-login/sass/login
|
|
32
|
+
├── plugins/ima-forms/sass/ima-forms
|
|
33
|
+
├── base/global-base
|
|
34
|
+
├── base/header
|
|
35
|
+
├── components/site-components
|
|
36
|
+
├── components/forms
|
|
37
|
+
├── components/badges
|
|
38
|
+
└── pages/* ← Page-specific styles
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Key Insight: Variable Override Strategy
|
|
42
|
+
|
|
43
|
+
**`_theme_variables.scss`** loads _before_ Bootstrap's variables file. Since Bootstrap uses `!default`, our values take precedence:
|
|
44
|
+
|
|
45
|
+
```scss
|
|
46
|
+
// In _theme_variables.scss (loaded BEFORE Bootstrap)
|
|
47
|
+
$primary: $ima-brand-primary !default; // #040C53
|
|
48
|
+
|
|
49
|
+
// In bootstrap5/_variables.scss (loaded AFTER)
|
|
50
|
+
$primary: $blue !default; // This is IGNORED because $primary already exists
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
This means **every Bootstrap component automatically uses IMA brand values** without any custom CSS.
|
|
54
|
+
|
|
55
|
+
## What _theme_variables.scss Overrides
|
|
56
|
+
|
|
57
|
+
### Theme Colors
|
|
58
|
+
```scss
|
|
59
|
+
$primary: $ima-brand-primary; // #040C53 Trustworthy Indigo
|
|
60
|
+
$secondary: $ima-brand-secondary; // #0296A1 Aquatic Pulse
|
|
61
|
+
$success: $ima-color-success; // #28A745
|
|
62
|
+
$warning: $ima-brand-gold; // #FFCC00 Vital Gold
|
|
63
|
+
$danger: $ima-brand-red; // #DD153B Red Ribbon
|
|
64
|
+
$info: $ima-brand-teal-accessible; // #007BB4 WCAG teal
|
|
65
|
+
$light: $ima-brand-gray-light; // #F2F3F5 Clarity Wash
|
|
66
|
+
$dark: $ima-brand-primary; // #040C53
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Typography
|
|
70
|
+
```scss
|
|
71
|
+
$font-family-base: $ima-font-family-secondary; // Proxima Nova/Open Sans
|
|
72
|
+
$headings-font-family: $ima-font-family-primary; // Lato
|
|
73
|
+
$headings-font-weight: $ima-font-weight-bold; // 700
|
|
74
|
+
$headings-color: $ima-brand-primary; // #040C53
|
|
75
|
+
$body-color: $ima-brand-black; // #000000
|
|
76
|
+
$font-size-base: $ima-font-size-sm; // 1rem (16px)
|
|
77
|
+
$h1-font-size: $ima-font-size-xxl; // 40px
|
|
78
|
+
$h2-font-size: $ima-font-size-xl; // 32px
|
|
79
|
+
$h3-font-size: $ima-font-size-lg; // 28px
|
|
80
|
+
$h4-font-size: $ima-font-size-md; // 20px
|
|
81
|
+
$h5-font-size: $ima-font-size-base; // 18px
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Links
|
|
85
|
+
```scss
|
|
86
|
+
$link-color: $ima-brand-secondary; // #0296A1 teal
|
|
87
|
+
$link-hover-color: $ima-brand-accent-teal; // #00B8B8 brighter
|
|
88
|
+
$link-decoration: none;
|
|
89
|
+
$link-hover-decoration: underline;
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Buttons
|
|
93
|
+
```scss
|
|
94
|
+
$btn-padding-y: $ima-button-padding-y; // 20px
|
|
95
|
+
$btn-padding-x: $ima-button-padding-x; // 40px
|
|
96
|
+
$btn-font-size: $ima-button-font-size; // 18px
|
|
97
|
+
$btn-font-weight: $ima-button-font-weight; // Bold
|
|
98
|
+
$btn-font-family: $ima-button-font; // Lato
|
|
99
|
+
$btn-border-radius: $ima-border-radius-md; // 10px
|
|
100
|
+
$btn-border-radius-lg: $ima-border-radius-xl; // 20px
|
|
101
|
+
$btn-border-radius-sm: $ima-border-radius-sm; // 5px
|
|
102
|
+
$btn-box-shadow: none;
|
|
103
|
+
$btn-active-box-shadow: none;
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Forms
|
|
107
|
+
```scss
|
|
108
|
+
$input-border-color: $ima-brand-gray; // #919396
|
|
109
|
+
$input-border-radius: $ima-form-field-border-radius; // 15px
|
|
110
|
+
$input-padding-y: $ima-spacing-3; // 16px
|
|
111
|
+
$input-padding-x: $ima-spacing-3; // 16px
|
|
112
|
+
$input-focus-border-color: $ima-brand-secondary; // #0296A1 teal
|
|
113
|
+
$form-label-color: $ima-form-label-color; // #919396
|
|
114
|
+
$form-label-font-size: $ima-form-label-size; // 14px
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Cards
|
|
118
|
+
```scss
|
|
119
|
+
$card-border-radius: $ima-border-radius-md; // 10px
|
|
120
|
+
$card-box-shadow: $ima-card-shadow; // none
|
|
121
|
+
$card-spacer-y: $ima-spacing-4; // 24px
|
|
122
|
+
$card-spacer-x: $ima-spacing-4; // 24px
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Navbar
|
|
126
|
+
```scss
|
|
127
|
+
$navbar-light-color: $ima-brand-primary; // Dark blue links
|
|
128
|
+
$navbar-light-hover-color: $ima-brand-secondary; // Teal on hover
|
|
129
|
+
$navbar-light-active-color: $ima-brand-accent-teal; // Bright teal active
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Global
|
|
133
|
+
```scss
|
|
134
|
+
$border-radius: $ima-border-radius-md; // 10px
|
|
135
|
+
$border-radius-sm: $ima-border-radius-sm; // 5px
|
|
136
|
+
$border-radius-lg: $ima-border-radius-lg; // 15px
|
|
137
|
+
$border-color: $ima-brand-gray-light;
|
|
138
|
+
$badge-border-radius: $ima-badge-border-radius; // 5px
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Picostrap Extensions (ninjabootstrap)
|
|
144
|
+
|
|
145
|
+
The theme includes Picostrap's extended Bootstrap utilities:
|
|
146
|
+
- `ninjabootstrap/positioning` — Extra positioning utilities
|
|
147
|
+
- `ninjabootstrap/sizing` — Extended sizing classes
|
|
148
|
+
- `ninjabootstrap/letter-spacing` — Letter spacing utilities
|
|
149
|
+
- `ninjabootstrap/borders` — Extra border utilities
|
|
150
|
+
- `ninjabootstrap/tailwind_grays` — Tailwind-style gray palette
|
|
151
|
+
- `ninjabootstrap/theme_colors_shades` — Shade variants for theme colors
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## _custom.scss Structure
|
|
156
|
+
|
|
157
|
+
The custom styles file uses a modular import structure:
|
|
158
|
+
|
|
159
|
+
```scss
|
|
160
|
+
// Plugin styles
|
|
161
|
+
@import "plugins/ima-login/sass/login"; // Login page styles
|
|
162
|
+
@import "plugins/ima-forms/sass/ima-forms"; // IMA Forms library
|
|
163
|
+
|
|
164
|
+
// Base
|
|
165
|
+
@import "base/global-base"; // Global typography, links
|
|
166
|
+
@import "base/header"; // Site header
|
|
167
|
+
|
|
168
|
+
// Components
|
|
169
|
+
@import "components/site-components"; // Reusable components
|
|
170
|
+
@import "components/forms"; // Form overrides
|
|
171
|
+
@import "components/badges"; // Badge styles
|
|
172
|
+
|
|
173
|
+
// Pages
|
|
174
|
+
@import "pages/activation-page";
|
|
175
|
+
@import "pages/listing-single";
|
|
176
|
+
@import "pages/directory-layout";
|
|
177
|
+
@import "pages/listing-cards";
|
|
178
|
+
@import "pages/my-account";
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Where to Add New Styles
|
|
184
|
+
|
|
185
|
+
| Type | Location |
|
|
186
|
+
|------|----------|
|
|
187
|
+
| Bootstrap variable override | `_theme_variables.scss` |
|
|
188
|
+
| New IMA brand variable | `ima-brand/sass/_variables.scss` |
|
|
189
|
+
| New IMA mixin | `ima-brand/sass/_typography.scss` or `_spacing.scss` |
|
|
190
|
+
| Global base styles | `sass/base/global-base.scss` |
|
|
191
|
+
| Reusable component | `sass/components/` (new file + import in _custom.scss) |
|
|
192
|
+
| Page-specific styles | `sass/pages/` (new file + import in _custom.scss) |
|
|
193
|
+
| Plugin styles | Import from plugin's sass directory in _custom.scss |
|
|
194
|
+
|
|
195
|
+
## How to Recompile
|
|
196
|
+
|
|
197
|
+
After SCSS changes: **Appearance > Customize > "RECOMPILE SASS"** in WordPress admin.
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Legacy Migration Reference
|
|
202
|
+
|
|
203
|
+
| Old FLCCC Variable | New IMA Variable |
|
|
204
|
+
|---------------------|------------------|
|
|
205
|
+
| `$flccc-blue-dark` (#040C53) | `$ima-brand-primary` (exact match) |
|
|
206
|
+
| `$flccc-blue` (#89CEDB) | `$ima-brand-sky` (#A2CFF0) |
|
|
207
|
+
| `$flccc-blue-darker` (#496978) | `$ima-brand-secondary` (#0296A1) |
|
|
208
|
+
| `$flccc-red` (#C90000) | `$ima-brand-red` (#DD153B) |
|
|
209
|
+
| `$flccc-grey` (#707070) | `$ima-brand-gray` (#919396) |
|
|
210
|
+
| `$flccc-grey-light` (#EDEDED) | `$ima-brand-gray-light` (#F2F3F5) |
|
|
211
|
+
| Montserrat | `$ima-font-family-primary` (Lato) |
|
|
212
|
+
| Open Sans | `$ima-font-family-secondary` (Proxima Nova/Open Sans) |
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ima-brand
|
|
3
|
+
description: >-
|
|
4
|
+
IMA Brand Book v4.0 knowledge — identity, voice, logo rules, content guidelines,
|
|
5
|
+
audience profiles, and visual standards. Use when: writing IMA content, choosing brand voice/tone,
|
|
6
|
+
applying logo usage rules, selecting brand colors for design decisions, creating social media
|
|
7
|
+
content, drafting medical disclaimers, or reviewing brand compliance. Triggers on: IMA brand,
|
|
8
|
+
brand guidelines, brand voice, logo usage, brand colors, content tone, social media guidelines,
|
|
9
|
+
medical disclaimer, brand identity, IMA imagery, brand values, brand persona, IMA mission,
|
|
10
|
+
IMA audience. For CSS/SCSS implementation, see ima-bootstrap skill instead.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# IMA Brand Guidelines
|
|
14
|
+
|
|
15
|
+
Brand Book v4.0 (September 2025) — Independent Medical Alliance.
|
|
16
|
+
|
|
17
|
+
## Core Principle
|
|
18
|
+
|
|
19
|
+
**Brand consistency builds trust in healthcare communication.**
|
|
20
|
+
|
|
21
|
+
Every piece of content, every design decision, every communication should reinforce IMA's position as a trustworthy, patient-centric medical alliance.
|
|
22
|
+
|
|
23
|
+
## Decision Tree
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
What type of brand question?
|
|
27
|
+
├── Identity (who we are, mission, values)
|
|
28
|
+
│ → references/brand-identity.md
|
|
29
|
+
├── Audience (who we're talking to, messaging)
|
|
30
|
+
│ → references/brand-identity.md
|
|
31
|
+
├── Voice & Tone (how we sound, copywriting)
|
|
32
|
+
│ → references/brand-identity.md
|
|
33
|
+
├── Colors (palette, usage, accessibility)
|
|
34
|
+
│ → references/visual-system.md
|
|
35
|
+
├── Typography (fonts, hierarchy, weights)
|
|
36
|
+
│ → references/visual-system.md
|
|
37
|
+
├── Logo (usage rules, lockups, clear space)
|
|
38
|
+
│ → references/visual-system.md
|
|
39
|
+
├── Imagery (photography, iconography style)
|
|
40
|
+
│ → references/visual-system.md
|
|
41
|
+
├── Social Media (platforms, sizes, content)
|
|
42
|
+
│ → references/digital-standards.md
|
|
43
|
+
├── Legal (disclaimers, copyright, compliance)
|
|
44
|
+
│ → references/digital-standards.md
|
|
45
|
+
├── Accessibility (WCAG, contrast ratios)
|
|
46
|
+
│ → references/digital-standards.md
|
|
47
|
+
└── CSS/SCSS implementation?
|
|
48
|
+
→ Use ima-bootstrap skill instead
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Quick Reference: Color Palette
|
|
52
|
+
|
|
53
|
+
| Name | Hex | Usage |
|
|
54
|
+
|------|-----|-------|
|
|
55
|
+
| Trustworthy Indigo | `#00066F` | Primary brand, headers, trust |
|
|
56
|
+
| Aquatic Pulse | `#00B8B8` | CTAs, buttons, links |
|
|
57
|
+
| Accessible Teal | `#007BB4` | Hover states, WCAG compliance |
|
|
58
|
+
| Guidance Sky | `#A2CFF0` | Light accents, backgrounds |
|
|
59
|
+
| Vital Gold | `#FFCC00` | Warnings, attention |
|
|
60
|
+
| Red Ribbon | `#DD153B` | Urgency, errors |
|
|
61
|
+
| Plum Velvet | `#7B024D` | Accent, distinction |
|
|
62
|
+
| Calm Stone | `#919396` | Secondary text, labels |
|
|
63
|
+
| Clarity Wash | `#F2F3F5` | Backgrounds, cards |
|
|
64
|
+
| Accessible Teal | `#007BB4` | High-contrast alternative |
|
|
65
|
+
| Brand Gradient | `150deg, #00066F → #00B8B8` | Hero sections, overlays |
|
|
66
|
+
|
|
67
|
+
## Quick Reference: Typography
|
|
68
|
+
|
|
69
|
+
| Element | Font | Weight | Size |
|
|
70
|
+
|---------|------|--------|------|
|
|
71
|
+
| Page headers | Lato | Bold/Black | 40px |
|
|
72
|
+
| Section headers | Lato | Bold | 20px |
|
|
73
|
+
| Body text | Proxima Nova / Open Sans | Regular | 16px |
|
|
74
|
+
| Buttons | Lato | Bold | 18px, uppercase |
|
|
75
|
+
| Form labels | Open Sans | Regular | 14px |
|
|
76
|
+
|
|
77
|
+
## Quick Reference: Voice & Tone
|
|
78
|
+
|
|
79
|
+
| Context | Tone | Example |
|
|
80
|
+
|---------|------|---------|
|
|
81
|
+
| Website / General | Professional + Friendly | "We're here to support your health journey" |
|
|
82
|
+
| Medical content | Professional + Informative | "Research suggests..." with citations |
|
|
83
|
+
| Social media | Friendly + Inspirational | "Join thousands who've found better health" |
|
|
84
|
+
| Crisis / Urgent | Supportive + Professional | "If you're experiencing..." with clear next steps |
|
|
85
|
+
| Newsletters | Friendly + Supportive | "Here's what we've been working on for you" |
|
|
86
|
+
| Fundraising | Inspirational + Supportive | "Your support makes independent research possible" |
|
|
87
|
+
|
|
88
|
+
## Anti-Patterns
|
|
89
|
+
|
|
90
|
+
| BAD | GOOD | Why |
|
|
91
|
+
|-----|------|-----|
|
|
92
|
+
| "FLCCC" in new content | "IMA" or "Independent Medical Alliance" | Rebranded; FLCCC is legacy |
|
|
93
|
+
| Stretching or recoloring the logo | Use approved lockup variants | Brand integrity |
|
|
94
|
+
| Logo on busy/patterned backgrounds | White, light, dark, or gradient bg only | Readability |
|
|
95
|
+
| Logo below 200px width | Minimum 200px, use IMA lettermark for small sizes | Legibility |
|
|
96
|
+
| Jargon-heavy copy without explanation | Plain language with medical terms defined | Patient accessibility |
|
|
97
|
+
| Fear-based messaging | Solution-oriented, empowering language | Brand persona |
|
|
98
|
+
| Missing medical disclaimer on health content | Include standard disclaimer | Legal compliance |
|
|
99
|
+
| Inconsistent tone across channels | Match tone to context (see Voice table) | Brand consistency |
|
|
100
|
+
| Using non-brand colors for key elements | Brand palette only for primary UI | Visual consistency |
|
|
101
|
+
|
|
102
|
+
## Cross-References
|
|
103
|
+
|
|
104
|
+
- **CSS/SCSS implementation** (variables, mixins, components): `ima-bootstrap` skill
|
|
105
|
+
- **SCSS source files**: `~/IMA/dev/ima-brand/sass/` (ima-brand plugin repo)
|
|
106
|
+
- **Brand identity deep dive**: [references/brand-identity.md](references/brand-identity.md)
|
|
107
|
+
- **Visual system details**: [references/visual-system.md](references/visual-system.md)
|
|
108
|
+
- **Digital & legal standards**: [references/digital-standards.md](references/digital-standards.md)
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# IMA Brand Identity
|
|
2
|
+
|
|
3
|
+
Source: IMA Brand Book v4.0, pages 4-10.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## About IMA
|
|
8
|
+
|
|
9
|
+
- **Full name**: Independent Medical Alliance
|
|
10
|
+
- **Formerly**: FLCCC Alliance (rebranded)
|
|
11
|
+
- **Founded**: March 2020
|
|
12
|
+
- **Type**: 501(c)(3) nonprofit organization
|
|
13
|
+
- **Mission**: Empower patients, healthcare providers, and researchers through independent, evidence-based medical knowledge and resources
|
|
14
|
+
- **Vision**: A world where every individual has access to trustworthy, independent medical guidance
|
|
15
|
+
- **Core purpose**: Equip the global community with knowledge and tools for informed healthcare decisions
|
|
16
|
+
|
|
17
|
+
**Key messaging**: IMA provides independent medical resources — not affiliated with pharmaceutical companies or government entities. This independence is the foundation of trustworthiness.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Brand Values
|
|
22
|
+
|
|
23
|
+
Seven core values guide all communications:
|
|
24
|
+
|
|
25
|
+
| Value | Meaning | Content Application |
|
|
26
|
+
|-------|---------|---------------------|
|
|
27
|
+
| **Integrity** | Honest, transparent communication | Never overstate claims, cite sources, acknowledge limitations |
|
|
28
|
+
| **Patient-Centric** | Patients' wellbeing comes first | Lead with patient benefit, use accessible language |
|
|
29
|
+
| **Scientific Rigor** | Evidence-based, peer-reviewed | Reference studies, use precise medical terminology (with definitions) |
|
|
30
|
+
| **Collaboration & Respect** | Work together across disciplines | Inclusive language, acknowledge diverse perspectives |
|
|
31
|
+
| **Innovative Solutions** | Forward-thinking healthcare | Highlight novel approaches while grounding in evidence |
|
|
32
|
+
| **Community & Support** | Build and nurture our community | Welcoming tone, encourage participation and sharing |
|
|
33
|
+
| **Impartiality** | Independent from industry influence | Never endorse specific products, maintain neutral analysis |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Target Audience
|
|
38
|
+
|
|
39
|
+
### Primary Segments
|
|
40
|
+
|
|
41
|
+
| Segment | Needs | Messaging Focus |
|
|
42
|
+
|---------|-------|-----------------|
|
|
43
|
+
| **Healthcare professionals** | Evidence-based protocols, clinical tools | Clinical data, peer-reviewed research, practical protocols |
|
|
44
|
+
| **Researchers** | Data, methodology, collaboration | Scientific rigor, research findings, academic partnerships |
|
|
45
|
+
| **Patients & caregivers** | Understandable health information | Plain language, actionable guidance, empowerment |
|
|
46
|
+
| **Policymakers** | Evidence for health policy decisions | Data-driven insights, population health impact |
|
|
47
|
+
| **Donors & supporters** | Impact of contributions | Mission impact stories, transparency, organizational progress |
|
|
48
|
+
|
|
49
|
+
### Audience Profiles
|
|
50
|
+
|
|
51
|
+
**Consumer audience** (patients, caregivers, general public):
|
|
52
|
+
- Use plain language, define medical terms on first use
|
|
53
|
+
- Focus on practical, actionable information
|
|
54
|
+
- Empowering and supportive tone
|
|
55
|
+
- Lead with "what this means for you"
|
|
56
|
+
|
|
57
|
+
**Professional audience** (HCPs, researchers, policymakers):
|
|
58
|
+
- Technical language appropriate but still accessible
|
|
59
|
+
- Lead with evidence and data
|
|
60
|
+
- Include methodology and sources
|
|
61
|
+
- Professional, collegial tone
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Brand Persona
|
|
66
|
+
|
|
67
|
+
Five tones that blend depending on context. No single communication should be purely one tone.
|
|
68
|
+
|
|
69
|
+
### Professional
|
|
70
|
+
- **When**: Medical content, research publications, healthcare provider communications
|
|
71
|
+
- **How**: Authoritative but approachable, evidence-backed statements, precise language
|
|
72
|
+
- **Example**: "Our protocols are developed through rigorous review of peer-reviewed literature and clinical experience."
|
|
73
|
+
|
|
74
|
+
### Friendly
|
|
75
|
+
- **When**: Social media, newsletters, community engagement, general website
|
|
76
|
+
- **How**: Warm, approachable, conversational without being casual, inclusive
|
|
77
|
+
- **Example**: "We're glad you're here. Let's explore what works for your health."
|
|
78
|
+
|
|
79
|
+
### Inspirational
|
|
80
|
+
- **When**: Fundraising, mission communications, impact stories, campaign launches
|
|
81
|
+
- **How**: Uplifting, forward-looking, emphasize collective impact and possibility
|
|
82
|
+
- **Example**: "Together, we're building a future where independent medical guidance is available to everyone."
|
|
83
|
+
|
|
84
|
+
### Supportive
|
|
85
|
+
- **When**: Patient-facing content, crisis communications, community support
|
|
86
|
+
- **How**: Empathetic, reassuring, non-judgmental, focused on next steps
|
|
87
|
+
- **Example**: "You're not alone in this. Here are resources that may help."
|
|
88
|
+
|
|
89
|
+
### Informative
|
|
90
|
+
- **When**: Educational content, FAQs, explainers, protocol summaries
|
|
91
|
+
- **How**: Clear, structured, factual, progressive (simple → complex)
|
|
92
|
+
- **Example**: "Vitamin D plays several roles in immune function. Here's what the research shows..."
|
|
93
|
+
|
|
94
|
+
### Tone Blending by Channel
|
|
95
|
+
|
|
96
|
+
| Channel | Primary Tone | Secondary Tone |
|
|
97
|
+
|---------|-------------|----------------|
|
|
98
|
+
| Website (general) | Professional | Friendly |
|
|
99
|
+
| Medical protocols | Professional | Informative |
|
|
100
|
+
| Social media | Friendly | Inspirational |
|
|
101
|
+
| Newsletters | Friendly | Supportive |
|
|
102
|
+
| Fundraising | Inspirational | Supportive |
|
|
103
|
+
| Patient resources | Supportive | Informative |
|
|
104
|
+
| Press / media | Professional | Informative |
|
|
105
|
+
| Community forums | Friendly | Supportive |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Copywriting Rules
|
|
110
|
+
|
|
111
|
+
### Do
|
|
112
|
+
|
|
113
|
+
- **Clear and concise**: Short sentences, active voice, one idea per paragraph
|
|
114
|
+
- **Positive framing**: Focus on solutions, not just problems
|
|
115
|
+
- **Active voice**: "IMA researchers discovered..." not "It was discovered by..."
|
|
116
|
+
- **Consistent messaging**: Use approved terminology across all channels
|
|
117
|
+
- **Accessible language**: Define medical jargon, use reading level appropriate to audience
|
|
118
|
+
- **Call to action**: Every piece of content should guide the reader to a next step
|
|
119
|
+
- **Cite sources**: Reference studies, link to protocols, provide evidence
|
|
120
|
+
|
|
121
|
+
### Don't
|
|
122
|
+
|
|
123
|
+
- **Overuse jargon**: Technical terms without explanation alienate patients
|
|
124
|
+
- **Exaggerate claims**: "Cure" vs "may help manage symptoms" — precision matters
|
|
125
|
+
- **Negative without solutions**: Don't just critique; offer alternatives
|
|
126
|
+
- **Overly formal**: Authoritative ≠ stiff — maintain warmth
|
|
127
|
+
- **Fear-based messaging**: Inform without alarming, empower without frightening
|
|
128
|
+
- **Make medical claims without evidence**: Every health statement needs backing
|
|
129
|
+
- **Use "FLCCC" in new content**: The organization has rebranded to IMA
|
|
130
|
+
|
|
131
|
+
### Terminology Guide
|
|
132
|
+
|
|
133
|
+
| Avoid | Prefer | Why |
|
|
134
|
+
|-------|--------|-----|
|
|
135
|
+
| FLCCC | IMA / Independent Medical Alliance | Rebrand |
|
|
136
|
+
| "Cure" / "Treatment" (without context) | "Protocol" / "Approach" / "May help with" | Precision |
|
|
137
|
+
| "You should" (directive) | "You may consider" / "Research suggests" | Patient autonomy |
|
|
138
|
+
| "Alternative medicine" | "Integrative medicine" / "Complementary approaches" | Accurate framing |
|
|
139
|
+
| "Big Pharma" / loaded terms | Name specific organizations or use neutral terms | Credibility |
|
|
140
|
+
| "We believe" | "Evidence shows" / "Research indicates" | Evidence-based |
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# IMA Digital Standards
|
|
2
|
+
|
|
3
|
+
Source: IMA Brand Book v4.0, pages 26-30.
|
|
4
|
+
|
|
5
|
+
For CSS/SCSS implementation details, see the `ima-bootstrap` skill.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Digital Style Guide
|
|
10
|
+
|
|
11
|
+
### Web Color Palette
|
|
12
|
+
|
|
13
|
+
Same brand colors as print, using hex values. Key digital-specific notes:
|
|
14
|
+
|
|
15
|
+
- **Background**: White (`#FFFFFF`) or Clarity Wash (`#F2F3F5`) for content areas
|
|
16
|
+
- **Text**: Gravel (`#494949`) for body, Trustworthy Indigo (`#00066F`) for headings
|
|
17
|
+
- **Links**: Aquatic Pulse (`#00B8B8`), hover → Accessible Teal (`#007BB4`)
|
|
18
|
+
- **Gradient**: Reserve for hero sections and premium elements, not for small UI
|
|
19
|
+
|
|
20
|
+
### Typography Hierarchy (Digital)
|
|
21
|
+
|
|
22
|
+
| Element | Font | Size | Color | WCAG Ratio | Level |
|
|
23
|
+
|---------|------|------|-------|------------|-------|
|
|
24
|
+
| H1 | Lato Black | 40px | `#00066F` | 16.5:1 | AAA |
|
|
25
|
+
| H2 | Lato Bold | 32px | `#00B8B8` | 5.04:1 | AA |
|
|
26
|
+
| H3 | Lato Regular | 28px | `#DD153B` | 4.94:1 | AA |
|
|
27
|
+
| Body | Proxima Nova | 16px | `#494949` | 9:1 | AAA |
|
|
28
|
+
|
|
29
|
+
### Button Specifications
|
|
30
|
+
|
|
31
|
+
| Type | Background | Text | Padding | Radius |
|
|
32
|
+
|------|-----------|------|---------|--------|
|
|
33
|
+
| Primary | `#00B8B8` | White | 20px / 40px | 10px |
|
|
34
|
+
| Primary (hover) | `#007BB4` | White | 20px / 40px | 10px |
|
|
35
|
+
| Primary wide | `#00B8B8` | White | 20px / 80px | 10px |
|
|
36
|
+
| Large/digital | `#00B8B8` | White | 20px / 40px | 20px |
|
|
37
|
+
| Outline | Transparent | `#00066F` | 20px / 40px | 10px |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Accessibility (WCAG)
|
|
42
|
+
|
|
43
|
+
### Contrast Ratios
|
|
44
|
+
|
|
45
|
+
| Combination | Ratio | Level | Pass |
|
|
46
|
+
|-------------|-------|-------|------|
|
|
47
|
+
| Indigo `#00066F` on White | 16.5:1 | AAA | Yes |
|
|
48
|
+
| Aquatic Pulse `#00B8B8` on White | 3.07:1 | — | Large text only |
|
|
49
|
+
| Red Ribbon `#DD153B` on White | 4.94:1 | AA | Yes |
|
|
50
|
+
| Body text `#494949` on White | 9:1 | AAA | Yes |
|
|
51
|
+
| Accessible Teal `#007BB4` on White | 4.58:1 | AA | Yes |
|
|
52
|
+
|
|
53
|
+
### Accessibility Requirements
|
|
54
|
+
|
|
55
|
+
- **Color is not the only indicator**: Always pair color with text, icons, or patterns
|
|
56
|
+
- **Alt text**: All images must have descriptive alt text
|
|
57
|
+
- **Link text**: Descriptive links, not "click here" or "read more" alone
|
|
58
|
+
- **Focus states**: Visible focus indicators on all interactive elements
|
|
59
|
+
- **Font sizes**: Minimum 16px for body text, 14px for labels
|
|
60
|
+
- **Touch targets**: Minimum 44x44px for mobile interactive elements
|
|
61
|
+
- **High-contrast teal**: Use `#007BB4` when Aquatic Pulse (`#00B8B8`) doesn't meet contrast needs
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Social Media
|
|
66
|
+
|
|
67
|
+
### Platforms
|
|
68
|
+
|
|
69
|
+
| Platform | Primary Content | Tone |
|
|
70
|
+
|----------|----------------|------|
|
|
71
|
+
| **Instagram** | Visual stories, infographics, community highlights | Friendly + Inspirational |
|
|
72
|
+
| **Facebook** | Articles, community engagement, events, fundraising | Friendly + Supportive |
|
|
73
|
+
| **X (Twitter)** | News, quick updates, engagement, threads | Professional + Friendly |
|
|
74
|
+
| **Telegram** | Community updates, direct communication | Supportive + Informative |
|
|
75
|
+
|
|
76
|
+
### Image Sizes
|
|
77
|
+
|
|
78
|
+
| Platform | Format | Dimensions |
|
|
79
|
+
|----------|--------|------------|
|
|
80
|
+
| Instagram | Post (square) | 1080 x 1080px |
|
|
81
|
+
| Instagram | Story / Reel | 1080 x 1920px |
|
|
82
|
+
| Instagram | Carousel | 1080 x 1080px per slide |
|
|
83
|
+
| Facebook | Post | 1200 x 630px |
|
|
84
|
+
| Facebook | Cover | 820 x 312px |
|
|
85
|
+
| X (Twitter) | Post | 1200 x 675px |
|
|
86
|
+
| X (Twitter) | Header | 1500 x 500px |
|
|
87
|
+
|
|
88
|
+
### Content Pillars
|
|
89
|
+
|
|
90
|
+
1. **Educational**: Health information, protocol summaries, research findings
|
|
91
|
+
2. **Community**: Patient stories, testimonials, support group highlights
|
|
92
|
+
3. **Advocacy**: Policy updates, medical freedom, patient rights
|
|
93
|
+
4. **Behind the scenes**: Team spotlights, research process, organizational updates
|
|
94
|
+
5. **Engagement**: Polls, Q&A, community questions, awareness campaigns
|
|
95
|
+
|
|
96
|
+
### Social Media Voice
|
|
97
|
+
|
|
98
|
+
- **Be human**: Conversational but professional, not robotic or corporate
|
|
99
|
+
- **Be responsive**: Engage with comments, answer questions, acknowledge feedback
|
|
100
|
+
- **Be visual**: Lead with compelling images/video, not just text
|
|
101
|
+
- **Be consistent**: Same brand voice across all platforms, adjusted for format
|
|
102
|
+
- **Be timely**: Post when audience is active, respond within 24 hours
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Content Guidelines
|
|
107
|
+
|
|
108
|
+
### Copywriting & Formatting
|
|
109
|
+
|
|
110
|
+
- **Headlines**: Clear, benefit-focused, under 10 words
|
|
111
|
+
- **Paragraphs**: Short (2-3 sentences max for digital)
|
|
112
|
+
- **Lists**: Use bullets for 3+ items
|
|
113
|
+
- **Links**: Descriptive text, not URLs or "click here"
|
|
114
|
+
- **CTAs**: One primary CTA per page/post, action-oriented ("Learn More", "Join Us", "Donate")
|
|
115
|
+
|
|
116
|
+
### User-Generated Content (UGC) Rules
|
|
117
|
+
|
|
118
|
+
- Always get written permission before reposting
|
|
119
|
+
- Credit the original creator
|
|
120
|
+
- Ensure content aligns with brand values
|
|
121
|
+
- Do not use UGC that makes unverified medical claims
|
|
122
|
+
- Moderate comments for harmful or misleading health information
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Legal & Compliance
|
|
127
|
+
|
|
128
|
+
### Medical Disclaimer
|
|
129
|
+
|
|
130
|
+
The following disclaimer (or equivalent) must appear on all content containing health information:
|
|
131
|
+
|
|
132
|
+
> The information provided by the Independent Medical Alliance (IMA) is for educational and informational purposes only. It is not intended as a substitute for professional medical advice, diagnosis, or treatment. Always seek the advice of your physician or other qualified health provider with any questions you may have regarding a medical condition. Never disregard professional medical advice or delay in seeking it because of something you have read on this website or in our publications.
|
|
133
|
+
|
|
134
|
+
### Where to Place Disclaimers
|
|
135
|
+
|
|
136
|
+
| Content Type | Disclaimer Placement |
|
|
137
|
+
|-------------|---------------------|
|
|
138
|
+
| Website pages (health content) | Footer of the page |
|
|
139
|
+
| Blog posts / articles | End of article, before comments |
|
|
140
|
+
| Social media | Bio/about section + link to full disclaimer |
|
|
141
|
+
| Email newsletters | Footer |
|
|
142
|
+
| Videos | Description/caption + end card |
|
|
143
|
+
| Downloadable resources | First or last page |
|
|
144
|
+
|
|
145
|
+
### Copyright
|
|
146
|
+
|
|
147
|
+
- Standard format: `2020-{current year} Independent Medical Alliance. All rights reserved.`
|
|
148
|
+
- All original content is IMA property
|
|
149
|
+
- Proper attribution required when citing external sources
|
|
150
|
+
|
|
151
|
+
### Sponsored Content Disclosure
|
|
152
|
+
|
|
153
|
+
- Clearly label all sponsored or partnership content
|
|
154
|
+
- Use "Sponsored", "Partner Content", or "In collaboration with [name]"
|
|
155
|
+
- Disclosure must be visible before user engages with content (not buried)
|
|
156
|
+
- Follow FTC guidelines for influencer/partner disclosures
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Approval Workflow
|
|
161
|
+
|
|
162
|
+
### Content Creation Process
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
1. Create → Draft content following brand guidelines
|
|
166
|
+
2. Review → Brand review for voice, tone, visual consistency
|
|
167
|
+
3. Approve → Designated approver signs off
|
|
168
|
+
4. Publish → Schedule/publish via approved tools
|
|
169
|
+
5. Monitor → Track engagement, respond to comments
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Recommended Tools
|
|
173
|
+
|
|
174
|
+
| Function | Tool |
|
|
175
|
+
|----------|------|
|
|
176
|
+
| Social scheduling | Hootsuite, Buffer |
|
|
177
|
+
| Content calendar | Notion |
|
|
178
|
+
| Design | Canva (with brand kit), Figma |
|
|
179
|
+
| Analytics | Platform-native analytics |
|
|
180
|
+
| Project management | Jira (see mcp-atlassian skill) |
|