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,233 @@
|
|
|
1
|
+
# Quasar Theme Integration - CSS Variables & SCSS Patterns
|
|
2
|
+
|
|
3
|
+
**Purpose**: Guide for integrating custom themes with Quasar's utility system
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Theme System Architecture
|
|
8
|
+
|
|
9
|
+
### Three-Layer System
|
|
10
|
+
|
|
11
|
+
**Layer 1: Theme Definition** (`src/styles/theme.scss`)
|
|
12
|
+
- Central source of truth for colors, typography, spacing
|
|
13
|
+
- SCSS variables for build-time values
|
|
14
|
+
- CSS custom properties for runtime theming (dark mode)
|
|
15
|
+
|
|
16
|
+
**Layer 2: Quasar Integration** (`src/css/quasar.variables.scss`)
|
|
17
|
+
- Maps theme to Quasar's color system
|
|
18
|
+
- Overrides Quasar defaults with brand colors
|
|
19
|
+
|
|
20
|
+
**Layer 3: Component Usage**
|
|
21
|
+
- Quasar utilities use theme automatically (`text-primary`, `bg-secondary`)
|
|
22
|
+
- Custom CSS uses theme variables for brand-specific styling
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## CSS Custom Properties vs SCSS Variables
|
|
27
|
+
|
|
28
|
+
### CSS Custom Properties (Runtime)
|
|
29
|
+
|
|
30
|
+
**Use for:** Values that change at runtime (dark mode, user preferences)
|
|
31
|
+
|
|
32
|
+
```scss
|
|
33
|
+
:root {
|
|
34
|
+
--color-text-primary: #391c11;
|
|
35
|
+
--color-prayer-text: #f0dab8;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
body.body--dark {
|
|
39
|
+
--color-text-primary: #f0dab8;
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```vue
|
|
44
|
+
<style scoped>
|
|
45
|
+
.prayer-text {
|
|
46
|
+
color: var(--color-prayer-text); /* Auto-switches in dark mode */
|
|
47
|
+
}
|
|
48
|
+
</style>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### SCSS Variables (Build-Time)
|
|
52
|
+
|
|
53
|
+
**Use for:** Static values that don't change at runtime
|
|
54
|
+
|
|
55
|
+
```scss
|
|
56
|
+
$color-brand-primary: #844628;
|
|
57
|
+
$font-family-prayer: 'Crimson Text', serif;
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```vue
|
|
61
|
+
<style scoped lang="scss">
|
|
62
|
+
@import '@/styles/theme.scss';
|
|
63
|
+
|
|
64
|
+
.custom-element {
|
|
65
|
+
background-color: rgba($color-brand-primary, 0.05);
|
|
66
|
+
font-family: $font-family-prayer;
|
|
67
|
+
}
|
|
68
|
+
</style>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Quasar Color Integration
|
|
74
|
+
|
|
75
|
+
### Mapping Custom Colors
|
|
76
|
+
|
|
77
|
+
**In `quasar.variables.scss`:**
|
|
78
|
+
```scss
|
|
79
|
+
@import '@/styles/theme.scss';
|
|
80
|
+
|
|
81
|
+
$primary: $color-brand-primary;
|
|
82
|
+
$secondary: $color-brand-secondary;
|
|
83
|
+
$accent: $color-brand-accent;
|
|
84
|
+
|
|
85
|
+
// Now Quasar utilities use your brand colors!
|
|
86
|
+
// class="text-primary" uses your custom color
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Decision Tree
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
Need to style something?
|
|
95
|
+
|-- Is it spacing, typography, or layout?
|
|
96
|
+
| --> Use Quasar utilities (q-pa-md, text-h5, row)
|
|
97
|
+
|
|
|
98
|
+
|-- Is it a color in Quasar's palette?
|
|
99
|
+
| --> Use Quasar color utilities (text-primary, bg-grey-1)
|
|
100
|
+
|
|
|
101
|
+
|-- Is it a custom brand color?
|
|
102
|
+
| --> Use SCSS variable: rgba($color-brand-primary, 0.05)
|
|
103
|
+
|
|
|
104
|
+
|-- Does it need to change in dark mode?
|
|
105
|
+
| --> Use CSS custom property: var(--color-prayer-text)
|
|
106
|
+
|
|
|
107
|
+
|-- Is it a unique design element?
|
|
108
|
+
--> Write minimal custom CSS with theme variables
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Theme Mixin Patterns
|
|
114
|
+
|
|
115
|
+
**Define in `theme.scss`:**
|
|
116
|
+
```scss
|
|
117
|
+
@mixin prayer-text-base {
|
|
118
|
+
font-family: $font-family-prayer;
|
|
119
|
+
color: var(--color-prayer-text);
|
|
120
|
+
line-height: $line-height-relaxed;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@mixin bg-elevated {
|
|
124
|
+
background-color: var(--color-surface-elevated);
|
|
125
|
+
border-radius: $radius-md;
|
|
126
|
+
box-shadow: $shadow-sm;
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Use in components:**
|
|
131
|
+
```vue
|
|
132
|
+
<style scoped lang="scss">
|
|
133
|
+
@import '@/styles/theme.scss';
|
|
134
|
+
|
|
135
|
+
.prayer-content {
|
|
136
|
+
@include prayer-text-base;
|
|
137
|
+
}
|
|
138
|
+
</style>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Complete Example: Hybrid Approach
|
|
144
|
+
|
|
145
|
+
```vue
|
|
146
|
+
<template>
|
|
147
|
+
<q-card flat bordered class="prayer-card rounded-borders q-mb-lg">
|
|
148
|
+
<q-card-section>
|
|
149
|
+
<!-- Header: 100% utilities -->
|
|
150
|
+
<div class="row items-start q-mb-md">
|
|
151
|
+
<div class="prayer-number row items-center justify-center">1</div>
|
|
152
|
+
<div class="col">
|
|
153
|
+
<h2 class="text-h5 text-weight-bold text-primary q-mb-sm q-mt-none">
|
|
154
|
+
Prayer Title
|
|
155
|
+
</h2>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
158
|
+
|
|
159
|
+
<!-- Content: utilities + custom mixin -->
|
|
160
|
+
<div class="prayer-content q-pa-md q-my-md rounded-borders">
|
|
161
|
+
<pre class="prayer-text">Prayer text</pre>
|
|
162
|
+
</div>
|
|
163
|
+
</q-card-section>
|
|
164
|
+
</q-card>
|
|
165
|
+
</template>
|
|
166
|
+
|
|
167
|
+
<style scoped lang="scss">
|
|
168
|
+
@import '@/styles/theme.scss';
|
|
169
|
+
|
|
170
|
+
/* Custom CSS ONLY for theme-specific brand elements */
|
|
171
|
+
|
|
172
|
+
.prayer-card {
|
|
173
|
+
background-color: rgba($color-brand-primary, 0.05);
|
|
174
|
+
border-color: rgba($color-brand-primary, 0.2);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.prayer-number {
|
|
178
|
+
width: 48px;
|
|
179
|
+
height: 48px;
|
|
180
|
+
background-color: $color-brand-primary;
|
|
181
|
+
color: white;
|
|
182
|
+
border-radius: 50%;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.prayer-text {
|
|
186
|
+
@include prayer-text-base;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/* Dark mode */
|
|
190
|
+
body.body--dark {
|
|
191
|
+
.prayer-card {
|
|
192
|
+
background-color: rgba($color-brand-primary, 0.15);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
</style>
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Common Mistakes & Solutions
|
|
201
|
+
|
|
202
|
+
### Mistake 1: Hardcoded Colors
|
|
203
|
+
|
|
204
|
+
Bad: `color: #844628;`
|
|
205
|
+
Good: `class="text-primary"` or `color: $color-brand-primary;`
|
|
206
|
+
|
|
207
|
+
### Mistake 2: Magic Number Spacing
|
|
208
|
+
|
|
209
|
+
Bad: `padding: 17px;`
|
|
210
|
+
Good: `class="q-pa-md"` (16px from 8px grid)
|
|
211
|
+
|
|
212
|
+
### Mistake 3: Bypassing Dark Mode
|
|
213
|
+
|
|
214
|
+
Bad: `background: #ffffff;`
|
|
215
|
+
Good: `class="bg-grey-1"` or `background-color: var(--color-surface-bg);`
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## CSS Architecture Summary
|
|
220
|
+
|
|
221
|
+
**Ideal Component Structure:**
|
|
222
|
+
- 80% utilities in template
|
|
223
|
+
- 20% custom CSS in style block
|
|
224
|
+
|
|
225
|
+
**What Goes Where:**
|
|
226
|
+
- **Utilities**: spacing, typography, layout, standard colors
|
|
227
|
+
- **SCSS Variables**: brand colors, custom fonts
|
|
228
|
+
- **CSS Properties**: runtime theme values (dark mode)
|
|
229
|
+
- **Mixins**: reusable patterns
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
**Reference**: https://quasar.dev/style/theme-builder
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# Quasar Utility Classes - Complete Reference
|
|
2
|
+
|
|
3
|
+
**Purpose**: Comprehensive reference for all Quasar utility classes (Bootstrap-style)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Spacing System (8px Grid)
|
|
8
|
+
|
|
9
|
+
### Size Scale
|
|
10
|
+
- `xs` = 4px (0.25rem)
|
|
11
|
+
- `sm` = 8px (0.5rem)
|
|
12
|
+
- `md` = 16px (1rem)
|
|
13
|
+
- `lg` = 24px (1.5rem)
|
|
14
|
+
- `xl` = 48px (3rem)
|
|
15
|
+
|
|
16
|
+
### Padding Classes
|
|
17
|
+
|
|
18
|
+
**All Sides:**
|
|
19
|
+
- `q-pa-none` - 0
|
|
20
|
+
- `q-pa-xs` - 4px
|
|
21
|
+
- `q-pa-sm` - 8px
|
|
22
|
+
- `q-pa-md` - 16px
|
|
23
|
+
- `q-pa-lg` - 24px
|
|
24
|
+
- `q-pa-xl` - 48px
|
|
25
|
+
|
|
26
|
+
**Top:** `q-pt-{size}`
|
|
27
|
+
**Right:** `q-pr-{size}`
|
|
28
|
+
**Bottom:** `q-pb-{size}`
|
|
29
|
+
**Left:** `q-pl-{size}`
|
|
30
|
+
**Horizontal (L+R):** `q-px-{size}`
|
|
31
|
+
**Vertical (T+B):** `q-py-{size}`
|
|
32
|
+
|
|
33
|
+
### Margin Classes
|
|
34
|
+
|
|
35
|
+
Same pattern as padding, but with `m` instead of `p`:
|
|
36
|
+
- `q-ma-{size}` - All sides
|
|
37
|
+
- `q-mt-{size}` - Top
|
|
38
|
+
- `q-mr-{size}` - Right
|
|
39
|
+
- `q-mb-{size}` - Bottom
|
|
40
|
+
- `q-ml-{size}` - Left
|
|
41
|
+
- `q-mx-{size}` - Horizontal
|
|
42
|
+
- `q-my-{size}` - Vertical
|
|
43
|
+
|
|
44
|
+
### Margin Auto
|
|
45
|
+
- `q-mx-auto` - Center horizontally
|
|
46
|
+
- `q-ml-auto` - Push to right
|
|
47
|
+
- `q-mr-auto` - Push to left
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Typography Classes
|
|
52
|
+
|
|
53
|
+
### Headings
|
|
54
|
+
- `text-h1` - 6rem (96px), weight 300
|
|
55
|
+
- `text-h2` - 3.75rem (60px), weight 300
|
|
56
|
+
- `text-h3` - 3rem (48px), weight 400
|
|
57
|
+
- `text-h4` - 2.125rem (34px), weight 400
|
|
58
|
+
- `text-h5` - 1.5rem (24px), weight 400
|
|
59
|
+
- `text-h6` - 1.25rem (20px), weight 500
|
|
60
|
+
|
|
61
|
+
### Body Text
|
|
62
|
+
- `text-body1` - 1rem (16px), weight 400
|
|
63
|
+
- `text-body2` - 0.875rem (14px), weight 400
|
|
64
|
+
- `text-subtitle1` - 1rem (16px), weight 500
|
|
65
|
+
- `text-subtitle2` - 0.875rem (14px), weight 500
|
|
66
|
+
- `text-caption` - 0.75rem (12px), weight 400
|
|
67
|
+
- `text-overline` - 0.75rem (12px), weight 400, uppercase
|
|
68
|
+
|
|
69
|
+
### Font Weight
|
|
70
|
+
- `text-weight-thin` - 100
|
|
71
|
+
- `text-weight-light` - 300
|
|
72
|
+
- `text-weight-regular` - 400
|
|
73
|
+
- `text-weight-medium` - 500
|
|
74
|
+
- `text-weight-bold` - 700
|
|
75
|
+
- `text-weight-bolder` - 900
|
|
76
|
+
|
|
77
|
+
### Text Style
|
|
78
|
+
- `text-italic`
|
|
79
|
+
- `text-no-wrap`
|
|
80
|
+
- `text-strike`
|
|
81
|
+
- `text-uppercase`
|
|
82
|
+
- `text-lowercase`
|
|
83
|
+
- `text-capitalize`
|
|
84
|
+
|
|
85
|
+
### Text Alignment
|
|
86
|
+
- `text-left`
|
|
87
|
+
- `text-center`
|
|
88
|
+
- `text-right`
|
|
89
|
+
- `text-justify`
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Color Classes
|
|
94
|
+
|
|
95
|
+
### Brand Colors (Theme-Aware)
|
|
96
|
+
- `text-primary` / `bg-primary`
|
|
97
|
+
- `text-secondary` / `bg-secondary`
|
|
98
|
+
- `text-accent` / `bg-accent`
|
|
99
|
+
|
|
100
|
+
### Semantic Colors
|
|
101
|
+
- `text-positive` / `bg-positive` - Success (green)
|
|
102
|
+
- `text-negative` / `bg-negative` - Error (red)
|
|
103
|
+
- `text-warning` / `bg-warning` - Warning (yellow/orange)
|
|
104
|
+
- `text-info` / `bg-info` - Info (blue)
|
|
105
|
+
|
|
106
|
+
### Grayscale
|
|
107
|
+
- `text-grey-1` / `bg-grey-1` - Lightest
|
|
108
|
+
- `text-grey-5` / `bg-grey-5` - Medium
|
|
109
|
+
- `text-grey-9` / `bg-grey-9` - Darkest
|
|
110
|
+
|
|
111
|
+
### Special Colors
|
|
112
|
+
- `text-white` / `bg-white`
|
|
113
|
+
- `text-black` / `bg-black`
|
|
114
|
+
- `text-transparent` / `bg-transparent`
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Flexbox Classes
|
|
119
|
+
|
|
120
|
+
### Containers
|
|
121
|
+
- `row` - flex row (display: flex)
|
|
122
|
+
- `column` - flex column (display: flex; flex-direction: column)
|
|
123
|
+
- `row inline` - inline flex row
|
|
124
|
+
- `reverse` - reverse order (combine with row/column)
|
|
125
|
+
|
|
126
|
+
### Alignment (align-items)
|
|
127
|
+
- `items-start` - flex-start
|
|
128
|
+
- `items-center` - center
|
|
129
|
+
- `items-end` - flex-end
|
|
130
|
+
- `items-stretch` - stretch
|
|
131
|
+
- `items-baseline` - baseline
|
|
132
|
+
|
|
133
|
+
### Justification (justify-content)
|
|
134
|
+
- `justify-start` - flex-start
|
|
135
|
+
- `justify-center` - center
|
|
136
|
+
- `justify-end` - flex-end
|
|
137
|
+
- `justify-between` - space-between
|
|
138
|
+
- `justify-around` - space-around
|
|
139
|
+
- `justify-evenly` - space-evenly
|
|
140
|
+
|
|
141
|
+
### Self Alignment
|
|
142
|
+
- `self-start`, `self-center`, `self-end`, `self-stretch`, `self-baseline`
|
|
143
|
+
|
|
144
|
+
### Flex Items
|
|
145
|
+
- `col` - flex: 1 (equal width)
|
|
146
|
+
- `col-auto` - flex: 0 0 auto (content width)
|
|
147
|
+
- `col-grow` - flex-grow: 1
|
|
148
|
+
- `col-shrink` - flex-shrink: 1
|
|
149
|
+
|
|
150
|
+
### Flex Wrap
|
|
151
|
+
- `wrap` - flex-wrap: wrap
|
|
152
|
+
- `no-wrap` - flex-wrap: nowrap
|
|
153
|
+
- `reverse-wrap` - flex-wrap: wrap-reverse
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Display Classes
|
|
158
|
+
|
|
159
|
+
- `block` - display: block
|
|
160
|
+
- `inline` - display: inline
|
|
161
|
+
- `inline-block` - display: inline-block
|
|
162
|
+
- `hidden` - display: none
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Border & Radius Classes
|
|
167
|
+
|
|
168
|
+
- `rounded-borders` - border-radius: 4px
|
|
169
|
+
- `no-border` - border: 0
|
|
170
|
+
- `no-border-radius` - border-radius: 0
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Shadow Classes
|
|
175
|
+
|
|
176
|
+
- `shadow-1` through `shadow-5` - Increasing elevation
|
|
177
|
+
- `no-shadow` - box-shadow: none
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Position Classes
|
|
182
|
+
|
|
183
|
+
- `relative-position` - position: relative
|
|
184
|
+
- `absolute` - position: absolute
|
|
185
|
+
- `fixed` - position: fixed
|
|
186
|
+
- `absolute-top`, `absolute-right`, `absolute-bottom`, `absolute-left`
|
|
187
|
+
- `absolute-center` - Center absolutely
|
|
188
|
+
- `absolute-full` - Fill parent
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Width/Height Classes
|
|
193
|
+
|
|
194
|
+
- `fit` / `full-width` - width: 100%
|
|
195
|
+
- `full-height` - height: 100%
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Responsive Classes
|
|
200
|
+
|
|
201
|
+
### Breakpoint Visibility
|
|
202
|
+
- `lt-sm` - Hide when < 600px
|
|
203
|
+
- `lt-md` - Hide when < 1024px
|
|
204
|
+
- `gt-xs` - Hide when > 599px
|
|
205
|
+
- `gt-sm` - Hide when > 1023px
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Common Utility Combinations
|
|
210
|
+
|
|
211
|
+
### Centered Header
|
|
212
|
+
```vue
|
|
213
|
+
<div class="text-center q-py-lg q-mb-lg">
|
|
214
|
+
<h1 class="text-h3 text-weight-bold text-primary q-mb-sm q-mt-none">Title</h1>
|
|
215
|
+
<p class="text-h6 text-italic text-accent q-mb-none">Subtitle</p>
|
|
216
|
+
</div>
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Flex Container
|
|
220
|
+
```vue
|
|
221
|
+
<div class="row items-center justify-between q-mb-md">
|
|
222
|
+
<div class="col-auto">Left</div>
|
|
223
|
+
<div class="col-auto">Right</div>
|
|
224
|
+
</div>
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Toggle with Description
|
|
228
|
+
```vue
|
|
229
|
+
<div class="q-pa-md q-mb-md rounded-borders">
|
|
230
|
+
<q-toggle v-model="value" label="Option" class="text-weight-medium q-mb-sm" />
|
|
231
|
+
<p class="text-caption text-grey-7 q-pl-sm q-mb-none">Description</p>
|
|
232
|
+
</div>
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
**Reference**: https://quasar.dev/style/spacing
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "quickstart"
|
|
3
|
+
description: "Team cheat sheet — scannable reference of the most common ima-claude workflows, commands, and MCP tools. What to type, not why. Use when: quickstart, cheat sheet, what can I do, getting started, how do I use, help me get started."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ima-claude Quickstart
|
|
7
|
+
|
|
8
|
+
## Instructions
|
|
9
|
+
|
|
10
|
+
**Display the entire cheat sheet below directly to the user.** Output it as-is in your response. Do not summarize, do not run any tools, do not perform memory bootstrap. Just print the cheat sheet.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Starting a Session
|
|
15
|
+
|
|
16
|
+
| What | Command |
|
|
17
|
+
|------|---------|
|
|
18
|
+
| Resume previous work | `/ima-claude:resume-session` |
|
|
19
|
+
| Save before ending | `/ima-claude:save-session` |
|
|
20
|
+
|
|
21
|
+
Memory bootstrap runs automatically at session start (Vestige search + intention check).
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## IMA Workflow
|
|
26
|
+
|
|
27
|
+
Habit-driven, not tool-enforced. Six steps:
|
|
28
|
+
|
|
29
|
+
| Step | Where | Command / Action |
|
|
30
|
+
|------|-------|-----------------|
|
|
31
|
+
| **1. Brainstorm** | Claude Web Project | Ideate, flush out concept into a plan |
|
|
32
|
+
| **2. Plan** | Claude Code — Plan Mode | `/plan` or ask Claude to enter Plan Mode |
|
|
33
|
+
| **3. Implement** | Claude Code | "Break this into tasks" (triggers `task-master`) |
|
|
34
|
+
| **4. Test** | Claude Code + manual | Unit tests + human testing |
|
|
35
|
+
| **5. Review** | Fresh Claude Code terminal | `/ima-claude:scorecard` + targeted reviews |
|
|
36
|
+
| **6. Document** | Confluence / Jira / MCP memory | Update Qdrant, Serena, Vestige, Markdowns |
|
|
37
|
+
|
|
38
|
+
Review findings may cycle back to any earlier step.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Writing Code
|
|
43
|
+
|
|
44
|
+
FP skills auto-activate by file type — just start coding.
|
|
45
|
+
|
|
46
|
+
| Context | Skill |
|
|
47
|
+
|---------|-------|
|
|
48
|
+
| JavaScript/TypeScript | `js-fp` |
|
|
49
|
+
| React | `js-fp-react` |
|
|
50
|
+
| Vue/Quasar | `js-fp-vue`, `quasar-fp` |
|
|
51
|
+
| WordPress JS | `js-fp-wordpress`, `jquery` |
|
|
52
|
+
| PHP | `php-fp` |
|
|
53
|
+
| WordPress PHP | `php-fp-wordpress` |
|
|
54
|
+
| Ruby | `ruby-fp` |
|
|
55
|
+
| Ruby on Rails | `rails` |
|
|
56
|
+
| Discourse plugins | `discourse` |
|
|
57
|
+
| Discourse frontend (Ember) | `ember-discourse` |
|
|
58
|
+
| Bootstrap/CSS | `ima-bootstrap` |
|
|
59
|
+
| E2E tests | `playwright` |
|
|
60
|
+
|
|
61
|
+
Core rule: **Simple > Complex. No custom FP utilities. Native patterns.**
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Reviewing Code
|
|
66
|
+
|
|
67
|
+
| What | Command |
|
|
68
|
+
|------|---------|
|
|
69
|
+
| Project quality scorecard | `/ima-claude:scorecard` |
|
|
70
|
+
| Full multi-agent review (Compound Engineering) | `/workflows:review` |
|
|
71
|
+
| Organize docs | `docs-organize` skill (Active/Archive/Transient tiers) |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Documenting Solutions
|
|
76
|
+
|
|
77
|
+
| What | Command |
|
|
78
|
+
|------|---------|
|
|
79
|
+
| Update cross-session knowledge | Vestige (`smart_ingest`) |
|
|
80
|
+
| Store large docs / plans | Qdrant (`mcp-qdrant`) |
|
|
81
|
+
| Document a solved problem (Compound Engineering) | `/workflows:compound` |
|
|
82
|
+
| Organize docs | `docs-organize` skill (Active/Archive/Transient tiers) |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Searching & Research
|
|
87
|
+
|
|
88
|
+
| Need | Tool |
|
|
89
|
+
|------|------|
|
|
90
|
+
| Current info (2025/2026, "latest") | Tavily (`mcp-tavily`) |
|
|
91
|
+
| Library/framework API docs | Context7 (`mcp-context7`) |
|
|
92
|
+
| Code symbols, references, rename | Serena (`mcp-serena`) |
|
|
93
|
+
| Past solutions, large docs | Qdrant (`mcp-qdrant`) |
|
|
94
|
+
| Cross-session knowledge | Vestige (`mcp-vestige`) |
|
|
95
|
+
| Complex reasoning, debugging | Sequential Thinking (`mcp-sequential`) |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Memory — Where to Store What
|
|
100
|
+
|
|
101
|
+
| What | Where |
|
|
102
|
+
|------|-------|
|
|
103
|
+
| Preferences, decisions, patterns | **Vestige** (auto-stored, spaced repetition) |
|
|
104
|
+
| PRDs, plans, large docs | **Qdrant** (semantic search, local RAG) |
|
|
105
|
+
| Session state (current task, WIP) | **Serena** (`/ima-claude:save-session`) |
|
|
106
|
+
|
|
107
|
+
Vestige stores automatically when you say "I prefer...", "Let's go with...", "From now on..."
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Project Setup
|
|
112
|
+
|
|
113
|
+
| What | Where |
|
|
114
|
+
|------|-------|
|
|
115
|
+
| Project skills & philosophy | `CLAUDE.md` in project root |
|
|
116
|
+
| Review agent config | `compound-engineering.local.md` in project root |
|
|
117
|
+
| Team Jira sync | `jira-checkpoint` skill (before/during/after work) |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Fun Stuff
|
|
122
|
+
|
|
123
|
+
| What | Command |
|
|
124
|
+
|------|---------|
|
|
125
|
+
| Warhammer 40K themed responses | "Enable 40k mode" |
|
|
126
|
+
| Medieval crusader themed | "Enable templars" |
|
|
127
|
+
| Back to normal | "Disable personality" |
|
|
128
|
+
|
|
129
|
+
Personalities are tone overlays — expertise stays the same.
|