@convertex/skill 1.0.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.
@@ -0,0 +1,154 @@
1
+ # Page Skeleton — Mandatory Structure
2
+
3
+ ## The 5 Layers
4
+
5
+ ```html
6
+ <div class="page-wrapper">
7
+ <header class="nav_component">...</header> <!-- Outside main-wrapper -->
8
+ <main class="main-wrapper">
9
+ <section class="section_hero">
10
+ <div class="padding-global padding-section-large">
11
+ <div class="container-large">
12
+ <!-- section content goes here -->
13
+ </div>
14
+ </div>
15
+ </section>
16
+ <section class="section_features">
17
+ <div class="padding-global padding-section-medium">
18
+ <div class="container-large">
19
+ <!-- section content goes here -->
20
+ </div>
21
+ </div>
22
+ </section>
23
+ </main>
24
+ <footer class="footer_component">...</footer> <!-- Outside main-wrapper -->
25
+ </div>
26
+ ```
27
+
28
+ ## Layer Rules
29
+
30
+ | Layer | Class | Tag | Purpose |
31
+ |---|---|---|---|
32
+ | 1 | `page-wrapper` | `<div>` | Outermost page wrapper |
33
+ | 2 | `main-wrapper` | `<main>` | Wraps all sections (excludes nav/footer) |
34
+ | 3 | `section_[id]` | `<section>` | Named section |
35
+ | 4 | `padding-global padding-section-[size]` | `<div>` | Horizontal + vertical spacing |
36
+ | 5 | `container-[size]` | `<div>` | Centered max-width content area |
37
+
38
+ **CRITICAL:** `padding-global` and `padding-section-[size]` go on the **SAME div**. Never separate them into two nested divs.
39
+
40
+ Nav and footer sit **OUTSIDE** `main-wrapper`, **INSIDE** `page-wrapper`.
41
+
42
+ ## Container Sizes
43
+
44
+ | Class | Max-width | Typical use |
45
+ |---|---|---|
46
+ | `container-large` | `80rem` (1280px) | Standard page content |
47
+ | `container-medium` | `64rem` (1024px) | Blog posts, focused content |
48
+ | `container-small` | `48rem` (768px) | Forms, narrow content |
49
+
50
+ ## Padding Section Sizes
51
+
52
+ | Class | Desktop | Tablet (991px) | Mobile (479px) |
53
+ |---|---|---|---|
54
+ | `padding-section-large` | `8rem` | `6rem` | `4rem` |
55
+ | `padding-section-medium` | `5rem` | `4rem` | `3rem` |
56
+ | `padding-section-small` | `3rem` | `2rem` | `1.5rem` |
57
+
58
+ ## padding-global Values
59
+
60
+ | Breakpoint | Value |
61
+ |---|---|
62
+ | Desktop | `2.5rem` (40px) |
63
+ | Tablet (991px) | `1.5rem` (24px) |
64
+ | Mobile (479px) | `1.25rem` (20px) |
65
+
66
+ ## Section Theming
67
+
68
+ Use combo classes on the `<section>` for visual themes:
69
+
70
+ ```html
71
+ <section class="section_cta section-style-dark">
72
+ <div class="padding-global padding-section-large">
73
+ <div class="container-large">
74
+ <h2 class="cta_heading">Ready to start?</h2>
75
+ </div>
76
+ </div>
77
+ </section>
78
+ ```
79
+
80
+ ```css
81
+ .section-style-dark { background-color: #0f172a; color: #f8fafc; }
82
+ ```
83
+
84
+ ## Complete Page Example
85
+
86
+ ```html
87
+ <div class="page-wrapper">
88
+ <!-- Nav (outside main-wrapper) -->
89
+ <div class="w-nav navbar" data-collapse="medium" data-animation="default" data-duration="400">
90
+ <div class="w-container nav_container">
91
+ <a href="/" class="w-nav-brand">
92
+ <img src="logo.svg" alt="Logo" class="nav_logo" />
93
+ </a>
94
+ <nav class="w-nav-menu nav_menu">
95
+ <a href="/features" class="w-nav-link nav_link">Features</a>
96
+ <a href="/pricing" class="w-nav-link nav_link">Pricing</a>
97
+ <a href="/contact" class="w-nav-link nav_link">Contact</a>
98
+ </nav>
99
+ <div class="w-nav-button nav_menu-button">
100
+ <div class="w-icon-nav-menu"></div>
101
+ </div>
102
+ </div>
103
+ </div>
104
+
105
+ <!-- Main content -->
106
+ <main class="main-wrapper">
107
+ <!-- Hero -->
108
+ <section class="section_hero">
109
+ <div class="padding-global padding-section-large">
110
+ <div class="container-large">
111
+ <div class="hero_content">
112
+ <h1 class="hero_heading">Build faster with Webflow</h1>
113
+ <p class="hero_description text-size-large">The modern way to create websites.</p>
114
+ <div class="hero_button-wrapper">
115
+ <a href="/start" class="button">Get started</a>
116
+ <a href="/demo" class="button is-secondary">Watch demo</a>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ </div>
121
+ </section>
122
+
123
+ <!-- Features -->
124
+ <section class="section_features">
125
+ <div class="padding-global padding-section-medium">
126
+ <div class="container-large">
127
+ <h2 class="features_heading">Why choose us</h2>
128
+ <div class="features_grid">
129
+ <div class="feature_card">
130
+ <h3 class="feature_title">Fast</h3>
131
+ <p class="feature_description">Lightning-fast performance.</p>
132
+ </div>
133
+ <div class="feature_card">
134
+ <h3 class="feature_title">Reliable</h3>
135
+ <p class="feature_description">99.9% uptime guarantee.</p>
136
+ </div>
137
+ </div>
138
+ </div>
139
+ </div>
140
+ </section>
141
+ </main>
142
+
143
+ <!-- Footer (outside main-wrapper) -->
144
+ <footer class="footer_component">
145
+ <div class="padding-global padding-section-small">
146
+ <div class="container-large">
147
+ <div class="footer_content">
148
+ <p class="footer_copyright text-size-small">2025 Company. All rights reserved.</p>
149
+ </div>
150
+ </div>
151
+ </div>
152
+ </footer>
153
+ </div>
154
+ ```
@@ -0,0 +1,170 @@
1
+ # Button Utilities
2
+
3
+ ## Base Button — `button`
4
+
5
+ Every button uses the `button` base class.
6
+
7
+ ```html
8
+ <a href="/start" class="button">Get started</a>
9
+ ```
10
+
11
+ ### Default CSS
12
+
13
+ ```css
14
+ .button {
15
+ display: inline-flex;
16
+ align-items: center;
17
+ justify-content: center;
18
+ padding-top: 0.75rem;
19
+ padding-bottom: 0.75rem;
20
+ padding-left: 1.5rem;
21
+ padding-right: 1.5rem;
22
+ background-color: #000;
23
+ color: #fff;
24
+ border-radius: 0.5rem;
25
+ font-weight: 600;
26
+ text-decoration: none;
27
+ transition: background-color 0.2s ease, transform 0.2s ease;
28
+ }
29
+
30
+ .button:hover {
31
+ opacity: 0.9;
32
+ }
33
+ ```
34
+
35
+ **Adapt colors, sizes, and border-radius to the project's design system.**
36
+
37
+ ## Variants — Combo Classes
38
+
39
+ ### Secondary — `button is-secondary`
40
+
41
+ ```html
42
+ <a href="/learn" class="button is-secondary">Learn more</a>
43
+ ```
44
+
45
+ ```css
46
+ .button.is-secondary {
47
+ background-color: transparent;
48
+ color: #000;
49
+ border-width: 1px;
50
+ border-style: solid;
51
+ border-color: #000;
52
+ }
53
+ ```
54
+
55
+ ### Text-only — `button is-text`
56
+
57
+ ```html
58
+ <a href="/details" class="button is-text">Read more</a>
59
+ ```
60
+
61
+ ```css
62
+ .button.is-text {
63
+ background-color: transparent;
64
+ color: #000;
65
+ padding-top: 0;
66
+ padding-bottom: 0;
67
+ padding-left: 0;
68
+ padding-right: 0;
69
+ }
70
+ ```
71
+
72
+ ### Small — `button is-small`
73
+
74
+ ```html
75
+ <a href="/tag" class="button is-small">Tag</a>
76
+ ```
77
+
78
+ ```css
79
+ .button.is-small {
80
+ padding-top: 0.5rem;
81
+ padding-bottom: 0.5rem;
82
+ padding-left: 1rem;
83
+ padding-right: 1rem;
84
+ font-size: 0.875rem;
85
+ }
86
+ ```
87
+
88
+ ### Large — `button is-large`
89
+
90
+ ```html
91
+ <a href="/start" class="button is-large">Get started now</a>
92
+ ```
93
+
94
+ ```css
95
+ .button.is-large {
96
+ padding-top: 1rem;
97
+ padding-bottom: 1rem;
98
+ padding-left: 2.5rem;
99
+ padding-right: 2.5rem;
100
+ font-size: 1.125rem;
101
+ }
102
+ ```
103
+
104
+ ## Button with Icon
105
+
106
+ ```html
107
+ <a href="/start" class="button">
108
+ <span class="button_text">Get started</span>
109
+ <span class="button_icon">→</span>
110
+ </a>
111
+ ```
112
+
113
+ ```css
114
+ .button_icon {
115
+ margin-left: 0.5rem;
116
+ transition: transform 0.2s ease;
117
+ }
118
+
119
+ .button:hover .button_icon {
120
+ /* Note: this hover effect needs a ghost block embed since it's a descendant selector */
121
+ }
122
+ ```
123
+
124
+ **For the hover effect on the icon**, add a ghost block:
125
+
126
+ ```html
127
+ <div class="w-embed">
128
+ <style>
129
+ .button:hover .button_icon { transform: translateX(4px); }
130
+ </style>
131
+ </div>
132
+ ```
133
+
134
+ ## Button Group Pattern
135
+
136
+ Wrap multiple buttons in a custom wrapper:
137
+
138
+ ```html
139
+ <div class="hero_button-wrapper">
140
+ <a href="/start" class="button">Get started</a>
141
+ <a href="/learn" class="button is-secondary">Learn more</a>
142
+ </div>
143
+ ```
144
+
145
+ ```css
146
+ .hero_button-wrapper {
147
+ display: flex;
148
+ flex-wrap: wrap;
149
+ gap: 1rem;
150
+ }
151
+
152
+ @media (max-width: 479px) {
153
+ .hero_button-wrapper {
154
+ flex-direction: column;
155
+ }
156
+ .hero_button-wrapper .button {
157
+ /* Note: needs ghost block embed for descendant selector */
158
+ width: 100%;
159
+ text-align: center;
160
+ }
161
+ }
162
+ ```
163
+
164
+ ## Rules
165
+
166
+ - `button` is a **utility class** (no underscore) — reusable across all sections
167
+ - `is-secondary`, `is-text`, `is-small`, `is-large` are **combo classes** — never used alone
168
+ - CSS uses compound selector: `.button.is-secondary { }` not `.is-secondary { }`
169
+ - Button wrappers are **custom classes**: `hero_button-wrapper`, `cta_button-wrapper`
170
+ - For form submit: use `<input type="submit" class="button">` or `<button type="submit" class="button">`
@@ -0,0 +1,89 @@
1
+ # Layout Utilities
2
+
3
+ ## Max Width — `max-width-[size]`
4
+
5
+ | Class | Value | | Class | Value |
6
+ |---|---|---|---|---|
7
+ | `max-width-xxlarge` | 80rem | | `max-width-small` | 20rem |
8
+ | `max-width-xlarge` | 64rem | | `max-width-xsmall` | 16rem |
9
+ | `max-width-large` | 48rem | | `max-width-xxsmall` | 12rem |
10
+ | `max-width-medium` | 32rem | | | |
11
+
12
+ ### Responsive max-width resets
13
+
14
+ Remove max-width at a specific breakpoint and below:
15
+
16
+ | Class | Breakpoint | Effect |
17
+ |---|---|---|
18
+ | `max-width-full` | All | `max-width: none` |
19
+ | `max-width-full-tablet` | 991px and below | `max-width: none` |
20
+ | `max-width-full-mobile-landscape` | 767px and below | `max-width: none` |
21
+ | `max-width-full-mobile-portrait` | 479px and below | `max-width: none` |
22
+
23
+ ## Hide — `hide-[breakpoint]`
24
+
25
+ Hide elements at specific breakpoints:
26
+
27
+ | Class | Effect |
28
+ |---|---|
29
+ | `hide` | Hidden at all breakpoints (`display: none`) |
30
+ | `hide-tablet` | Hidden at 991px and below |
31
+ | `hide-mobile-landscape` | Hidden at 767px and below |
32
+ | `hide-mobile-portrait` | Hidden at 479px and below |
33
+
34
+ ```html
35
+ <!-- Desktop-only element -->
36
+ <div class="hide-tablet">Only visible on desktop</div>
37
+
38
+ <!-- Mobile-only element -->
39
+ <div class="hide">
40
+ <!-- Override with show class at mobile breakpoint via custom CSS -->
41
+ </div>
42
+ ```
43
+
44
+ ## Background — `background-color-[name]`
45
+
46
+ | Class | Typical use |
47
+ |---|---|
48
+ | `background-color-primary` | Main brand background |
49
+ | `background-color-secondary` | Secondary background |
50
+ | `background-color-tertiary` | Subtle background |
51
+ | `background-color-alternate` | Contrast sections |
52
+
53
+ Adapt color values to the project's design system.
54
+
55
+ ## Icons
56
+
57
+ | Class | Effect |
58
+ |---|---|
59
+ | `icon-height-small` | Small icon height |
60
+ | `icon-height-medium` | Medium icon height |
61
+ | `icon-height-large` | Large icon height |
62
+ | `icon-1x1-small` | Square icon (small) |
63
+ | `icon-1x1-medium` | Square icon (medium) |
64
+ | `icon-1x1-large` | Square icon (large) |
65
+
66
+ ## Positioning & Effects
67
+
68
+ | Class | CSS |
69
+ |---|---|
70
+ | `z-index-1` | `z-index: 1; position: relative` |
71
+ | `z-index-2` | `z-index: 2; position: relative` |
72
+ | `overflow-hidden` | `overflow: hidden` |
73
+ | `layer` | `position: absolute; inset: 0` (full-cover overlay) |
74
+ | `align-center` | `margin-left: auto; margin-right: auto` |
75
+ | `pointer-events-none` | `pointer-events: none` |
76
+
77
+ ## Aspect Ratios
78
+
79
+ | Class | Ratio |
80
+ |---|---|
81
+ | `aspect-ratio-square` | `1 / 1` |
82
+ | `aspect-ratio-landscape` | `3 / 2` |
83
+ | `aspect-ratio-widescreen` | `16 / 9` |
84
+
85
+ ```html
86
+ <div class="hero_image-wrapper aspect-ratio-widescreen overflow-hidden">
87
+ <img src="hero.jpg" alt="Hero" class="hero_image" />
88
+ </div>
89
+ ```
@@ -0,0 +1,81 @@
1
+ # Spacing Utilities
2
+
3
+ ## Two-Class System
4
+
5
+ Direction + size on the **SAME element**:
6
+
7
+ ```html
8
+ <div class="margin-bottom margin-medium"> <!-- margin-bottom: 2rem -->
9
+ <div class="padding-vertical padding-large"> <!-- padding-top + bottom: 3rem -->
10
+ ```
11
+
12
+ ## Margin
13
+
14
+ ### Directions
15
+
16
+ `margin-top`, `margin-bottom`, `margin-left`, `margin-right`, `margin-horizontal`, `margin-vertical`
17
+
18
+ ### Sizes
19
+
20
+ | Class | Value | | Class | Value |
21
+ |---|---|---|---|---|
22
+ | `margin-0` | 0 | | `margin-large` | 3rem |
23
+ | `margin-tiny` | 0.125rem | | `margin-xlarge` | 4rem |
24
+ | `margin-xxsmall` | 0.25rem | | `margin-xxlarge` | 5rem |
25
+ | `margin-xsmall` | 0.5rem | | `margin-huge` | 6rem |
26
+ | `margin-small` | 1rem | | `margin-xhuge` | 8rem |
27
+ | `margin-medium` | 2rem | | `margin-xxhuge` | 12rem |
28
+ | `margin-custom1` | 1.5rem | | `margin-custom2` | 2.5rem |
29
+
30
+ ### Examples
31
+
32
+ ```html
33
+ <h2 class="margin-bottom margin-small">Section Title</h2>
34
+ <p class="margin-bottom margin-medium">Paragraph with spacing below</p>
35
+ <div class="margin-horizontal margin-large">Horizontal margins</div>
36
+ ```
37
+
38
+ ## Padding
39
+
40
+ ### Directions
41
+
42
+ `padding-top`, `padding-bottom`, `padding-left`, `padding-right`, `padding-horizontal`, `padding-vertical`
43
+
44
+ ### Sizes
45
+
46
+ Same scale as margin: `padding-0` through `padding-xxhuge`, plus `padding-custom1`, `padding-custom2`, `padding-custom3`.
47
+
48
+ ### Examples
49
+
50
+ ```html
51
+ <div class="padding-vertical padding-large">Vertical padding</div>
52
+ <div class="padding-horizontal padding-medium">Horizontal padding</div>
53
+ ```
54
+
55
+ ## Spacer Blocks
56
+
57
+ Empty divs for vertical spacing between elements:
58
+
59
+ ```html
60
+ <div class="spacer-medium"></div>
61
+ ```
62
+
63
+ | Class | Value |
64
+ |---|---|
65
+ | `spacer-small` | 1rem |
66
+ | `spacer-medium` | 2rem |
67
+ | `spacer-large` | 3rem |
68
+
69
+ Use spacers when you need spacing between siblings without adding margin to either element.
70
+
71
+ ## Reset
72
+
73
+ `spacing-clean` — sets all margin and padding to 0. Useful for overriding tag defaults.
74
+
75
+ ```html
76
+ <h3 class="spacing-clean">Heading with no default margins</h3>
77
+ ```
78
+
79
+ ## Important
80
+
81
+ `padding-global` and `padding-section-*` are **structural classes** (part of the page skeleton), NOT spacing utilities. Don't use them for general spacing.
@@ -0,0 +1,86 @@
1
+ # Typography Utilities
2
+
3
+ HTML tags define default styles (`<h1>`–`<h6>` styled via tag styles). Use utility classes only to **override** the default.
4
+
5
+ ## Heading Style Switch — `heading-style-h[n]`
6
+
7
+ Restyle a heading to LOOK like another level while preserving the semantic tag for SEO:
8
+
9
+ ```html
10
+ <h3 class="heading-style-h2">Visually H2, semantically H3</h3>
11
+ <h1 class="heading-style-h4">Small heading, top-level SEO weight</h1>
12
+ ```
13
+
14
+ If the tag matches the desired visual style, use no class: `<h2>Title</h2>`.
15
+
16
+ ## Text Size — `text-size-[size]`
17
+
18
+ | Class | Value |
19
+ |---|---|
20
+ | `text-size-large` | 1.5rem (24px) |
21
+ | `text-size-medium` | 1.125rem (18px) |
22
+ | `text-size-regular` | 1rem (16px) |
23
+ | `text-size-small` | 0.875rem (14px) |
24
+ | `text-size-tiny` | 0.75rem (12px) |
25
+
26
+ ```html
27
+ <p class="text-size-large">Larger paragraph for introductions</p>
28
+ <p class="text-size-small">Fine print or captions</p>
29
+ ```
30
+
31
+ ## Text Weight — `text-weight-[name]`
32
+
33
+ | Class | Value |
34
+ |---|---|
35
+ | `text-weight-xbold` | 800 |
36
+ | `text-weight-bold` | 700 |
37
+ | `text-weight-semibold` | 600 |
38
+ | `text-weight-normal` | 400 |
39
+ | `text-weight-light` | 300 |
40
+
41
+ ```html
42
+ <p class="text-weight-semibold">Semi-bold text</p>
43
+ ```
44
+
45
+ ## Text Color — `text-color-[name]`
46
+
47
+ | Class | Typical use |
48
+ |---|---|
49
+ | `text-color-primary` | Main text color (dark) |
50
+ | `text-color-secondary` | Muted/secondary text |
51
+ | `text-color-alternate` | Inverted text (for dark backgrounds) |
52
+
53
+ Adapt actual color values to the project's design system.
54
+
55
+ ```html
56
+ <p class="text-color-secondary">Muted helper text</p>
57
+ ```
58
+
59
+ ## Text Alignment — `text-align-[dir]`
60
+
61
+ `text-align-left`, `text-align-center`, `text-align-right`
62
+
63
+ ```html
64
+ <div class="text-align-center">
65
+ <h2>Centered heading</h2>
66
+ <p>Centered paragraph</p>
67
+ </div>
68
+ ```
69
+
70
+ ## Text Style — `text-style-[name]`
71
+
72
+ | Class | CSS | Use |
73
+ |---|---|---|
74
+ | `text-style-allcaps` | `text-transform: uppercase; letter-spacing: 0.05em` | Labels, badges |
75
+ | `text-style-italic` | `font-style: italic` | Emphasis |
76
+ | `text-style-link` | `text-decoration: underline` | Inline links |
77
+ | `text-style-muted` | `opacity: 0.6` | De-emphasized text |
78
+ | `text-style-nowrap` | `white-space: nowrap` | Prevent line breaks |
79
+ | `text-style-strikethrough` | `text-decoration: line-through` | Deleted/old prices |
80
+ | `text-style-2lines` | Line clamp to 2 lines | Card descriptions |
81
+ | `text-style-3lines` | Line clamp to 3 lines | Preview text |
82
+
83
+ ```html
84
+ <span class="text-style-allcaps text-size-small">Featured</span>
85
+ <p class="text-style-2lines">This text will be truncated to 2 lines with an ellipsis if it overflows...</p>
86
+ ```