@birdycom/omniaui-blocks 0.11.0 → 0.11.1

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.
Files changed (57) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +10 -10
  3. package/blocks/about-timeline.html +23 -23
  4. package/blocks/app-header.html +32 -32
  5. package/blocks/app-shell.html +84 -84
  6. package/blocks/auth-split.html +45 -45
  7. package/blocks/auth.html +21 -21
  8. package/blocks/contact-grid.html +38 -38
  9. package/blocks/cta.html +8 -8
  10. package/blocks/data-table.html +111 -111
  11. package/blocks/faq.html +33 -33
  12. package/blocks/features.html +18 -18
  13. package/blocks/footer.html +41 -41
  14. package/blocks/forgot-password.html +34 -34
  15. package/blocks/form-page.html +28 -28
  16. package/blocks/hero-code.html +27 -27
  17. package/blocks/hero-orbit.html +38 -38
  18. package/blocks/hero-split.html +12 -12
  19. package/blocks/hero.html +10 -10
  20. package/blocks/login-01.html +41 -41
  21. package/blocks/login-02.html +55 -55
  22. package/blocks/login-03.html +47 -47
  23. package/blocks/module-header.html +24 -24
  24. package/blocks/otp-01.html +36 -36
  25. package/blocks/otp-02.html +46 -46
  26. package/blocks/page-hero.html +10 -10
  27. package/blocks/portfolio-grid.html +31 -31
  28. package/blocks/pricing.html +42 -42
  29. package/blocks/process.html +19 -19
  30. package/blocks/product-grid.html +37 -37
  31. package/blocks/profile-header.html +27 -27
  32. package/blocks/reset-password.html +45 -45
  33. package/blocks/showcase.html +27 -27
  34. package/blocks/sidebar-01.html +56 -56
  35. package/blocks/sidebar-02.html +55 -55
  36. package/blocks/sidebar-03.html +53 -53
  37. package/blocks/sidebar-04.html +56 -56
  38. package/blocks/sidebar-05.html +68 -68
  39. package/blocks/signup-01.html +53 -53
  40. package/blocks/signup-02.html +56 -56
  41. package/blocks/site-footer.html +39 -39
  42. package/blocks/site-header.html +14 -14
  43. package/blocks/spotlight.html +22 -22
  44. package/blocks/stats-counter.html +15 -15
  45. package/blocks/stats.html +19 -19
  46. package/blocks/team-list.html +30 -30
  47. package/blocks/two-factor.html +33 -33
  48. package/blocks/wizard-dialog.html +36 -36
  49. package/dist/blocks.css +371 -343
  50. package/dist/blocks.min.css +1 -1
  51. package/dist/parts/site-about-timeline.css +61 -61
  52. package/dist/parts/site-contact-grid.css +58 -58
  53. package/dist/parts/site-faq.css +52 -52
  54. package/dist/parts/site-hero-orbit.css +62 -62
  55. package/dist/parts/site-portfolio-grid.css +23 -23
  56. package/dist/parts/site-profile-header.css +77 -77
  57. package/package.json +55 -55
@@ -1,46 +1,46 @@
1
- <!-- OmniaUI block: otp-02 - Verification form beside a brand panel (container-query split). Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS.
2
- Class API (modifiers are extra classes / attributes on the same element):
3
- .oc-block-authpage: Page wrapper that centers one card. Modifier: --plain (page background instead of muted)
4
- .oc-block-authcard: Card column. Modifiers: --flat (no card chrome), --wide
5
- .oc-block-authcard-logo: Icon tile above the title
6
- .oc-block-authcard-head / -title / -text: Centered heading block, title and description
7
- .oc-block-authcard-fields / -row: Field stack and a justified row (remember me / forgot password)
8
- .oc-block-authcard-submit: Full-width submit button
9
- .oc-block-authcard-foot / -legal / -hint: Switch-form line, legal line, small helper text
10
- .oc-block-authcard-center: Centered column (OTP input)
11
- .oc-block-authsocial: Auto-fit grid of social buttons
12
- .oc-block-authduo: Split layout root (container query: two columns from 42rem of its own width). Modifier: --reverse
13
- .oc-block-authduo-grid / -panel / -form: Grid, brand panel (modifiers --image, --muted) and form column
14
- .oc-block-authduo-logo / -quote: Panel logo and quote
15
- .oc-block-authmin: Minimal centered column without a card
16
- .oc-separator-text: Divider with centered text (separator component)
17
- .oc-otp: Code input drawn as cells (component); set --oc-otp-length and maxlength
18
- -->
19
- <div class="oc-block-authduo">
20
- <div class="oc-block-authduo-grid">
21
- <aside class="oc-block-authduo-panel oc-block-authduo-panel--muted">
22
- <a class="oc-block-authduo-logo" href="#"><svg class="" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m12 3 9 5-9 5-9-5z"/><path d="m3 13 9 5 9-5"/></svg> OmniaDesk</a>
23
- <blockquote class="oc-block-authduo-quote">
24
- <p>&ldquo;Two-step verification keeps our client data where it belongs.&rdquo;</p>
25
- <footer>Security team</footer>
26
- </blockquote>
27
- </aside>
28
- <div class="oc-block-authduo-form">
29
- <form class="oc-block-authcard oc-block-authcard--flat" action="#" method="post">
30
- <div class="oc-block-authcard-head">
31
- <h1 class="oc-block-authcard-title">Verify your login</h1>
32
- <p class="oc-block-authcard-text">Enter the code from your authenticator app</p>
33
- </div>
34
- <div class="oc-block-authcard-fields">
35
- <div class="oc-field">
36
- <label class="oc-field-label" for="oc-otp02-code">Verification code</label>
37
- <input class="oc-otp" id="oc-otp02-code" name="code" type="text" inputmode="numeric" autocomplete="one-time-code" maxlength="6" pattern="[0-9]*" style="--oc-otp-length: 6" value="482">
38
- <p class="oc-field-description">Enter the 6-digit code we sent to your authenticator app.</p>
39
- </div>
40
- <button class="oc-btn oc-block-authcard-submit" type="submit">Verify</button>
41
- </div>
42
- <p class="oc-block-authcard-foot">Lost your device? <a href="#">Use a recovery code</a></p>
43
- </form>
44
- </div>
45
- </div>
46
- </div>
1
+ <!-- OmniaUI block: otp-02 - Verification form beside a brand panel (container-query split). Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS.
2
+ Class API (modifiers are extra classes / attributes on the same element):
3
+ .oc-block-authpage: Page wrapper that centers one card. Modifier: --plain (page background instead of muted)
4
+ .oc-block-authcard: Card column. Modifiers: --flat (no card chrome), --wide
5
+ .oc-block-authcard-logo: Icon tile above the title
6
+ .oc-block-authcard-head / -title / -text: Centered heading block, title and description
7
+ .oc-block-authcard-fields / -row: Field stack and a justified row (remember me / forgot password)
8
+ .oc-block-authcard-submit: Full-width submit button
9
+ .oc-block-authcard-foot / -legal / -hint: Switch-form line, legal line, small helper text
10
+ .oc-block-authcard-center: Centered column (OTP input)
11
+ .oc-block-authsocial: Auto-fit grid of social buttons
12
+ .oc-block-authduo: Split layout root (container query: two columns from 42rem of its own width). Modifier: --reverse
13
+ .oc-block-authduo-grid / -panel / -form: Grid, brand panel (modifiers --image, --muted, --photo with style="--oc-authduo-photo: url(…)") and form column
14
+ .oc-block-authduo-logo / -quote: Panel logo and quote
15
+ .oc-block-authmin: Minimal centered column without a card
16
+ .oc-separator-text: Divider with centered text (separator component)
17
+ .oc-otp: Code input drawn as cells (component); set --oc-otp-length and maxlength
18
+ -->
19
+ <div class="oc-block-authduo">
20
+ <div class="oc-block-authduo-grid">
21
+ <aside class="oc-block-authduo-panel oc-block-authduo-panel--muted">
22
+ <a class="oc-block-authduo-logo" href="#"><svg class="" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m12 3 9 5-9 5-9-5z"/><path d="m3 13 9 5 9-5"/></svg> OmniaDesk</a>
23
+ <blockquote class="oc-block-authduo-quote">
24
+ <p>&ldquo;Two-step verification keeps our client data where it belongs.&rdquo;</p>
25
+ <footer>Security team</footer>
26
+ </blockquote>
27
+ </aside>
28
+ <div class="oc-block-authduo-form">
29
+ <form class="oc-block-authcard oc-block-authcard--flat" action="#" method="post">
30
+ <div class="oc-block-authcard-head">
31
+ <h1 class="oc-block-authcard-title">Verify your login</h1>
32
+ <p class="oc-block-authcard-text">Enter the code from your authenticator app</p>
33
+ </div>
34
+ <div class="oc-block-authcard-fields">
35
+ <div class="oc-field">
36
+ <label class="oc-field-label" for="oc-otp02-code">Verification code</label>
37
+ <input class="oc-otp" id="oc-otp02-code" name="code" type="text" inputmode="numeric" autocomplete="one-time-code" maxlength="6" pattern="[0-9]*" style="--oc-otp-length: 6" value="482">
38
+ <p class="oc-field-description">Enter the 6-digit code we sent to your authenticator app.</p>
39
+ </div>
40
+ <button class="oc-btn oc-block-authcard-submit" type="submit">Verify</button>
41
+ </div>
42
+ <p class="oc-block-authcard-foot">Lost your device? <a href="#">Use a recovery code</a></p>
43
+ </form>
44
+ </div>
45
+ </div>
46
+ </div>
@@ -1,10 +1,10 @@
1
- <!-- OmniaUI block: page-hero — Page header (the oc-hero used on every docs page): eyebrow, title, text, actions. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS. -->
2
- <section class="oc-hero">
3
- <span class="oc-hero-eyebrow">Components</span>
4
- <h1 class="oc-hero-title">Build interfaces with native HTML</h1>
5
- <p class="oc-hero-text">Dialogs, menus and accordions without JavaScript — styled with OmniaCSS.</p>
6
- <div class="oc-hero-actions">
7
- <a class="oc-btn" href="#start">Get started</a>
8
- <a class="oc-btn oc-btn--outline" href="#docs">Documentation</a>
9
- </div>
10
- </section>
1
+ <!-- OmniaUI block: page-hero — Page header (the oc-hero used on every docs page): eyebrow, title, text, actions. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS. -->
2
+ <section class="oc-hero">
3
+ <span class="oc-hero-eyebrow">Components</span>
4
+ <h1 class="oc-hero-title">Build interfaces with native HTML</h1>
5
+ <p class="oc-hero-text">Dialogs, menus and accordions without JavaScript — styled with OmniaCSS.</p>
6
+ <div class="oc-hero-actions">
7
+ <a class="oc-btn" href="#start">Get started</a>
8
+ <a class="oc-btn oc-btn--outline" href="#docs">Documentation</a>
9
+ </div>
10
+ </section>
@@ -1,31 +1,31 @@
1
- <!-- OmniaUI block: portfolio-grid - Portfolio section: heading with an "all projects" link and a grid of project cards. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS.
2
- File: packages/blocks/blocks/portfolio-grid.html | Map: section -> container -> head (eyebrow, title, lead, link) -> grid of .oc-project-card
3
- Class API: .oc-block-portfolio (modifier --two: wider cards), -head, -lead, -grid (--oc-portfolio-min sets the card width).
4
- Cards are the project-card component; give each an .oc-accent--* preset for its placeholder.
5
- -->
6
- <section class="oc-block-portfolio oc-section-pad" aria-labelledby="oc-portfolio-title">
7
- <div class="oc-container">
8
- <div class="oc-block-portfolio-head">
9
- <div>
10
- <p class="oc-eyebrow">Our work</p>
11
- <h2 class="oc-display oc-display--md" id="oc-portfolio-title">Selected <span class="oc-text-gradient">projects</span></h2>
12
- <p class="oc-block-portfolio-lead">Websites and apps we designed, built and still maintain.</p>
13
- </div>
14
- <a class="oc-link-arrow" href="#projects">All projects</a>
15
- </div>
16
- <div class="oc-block-portfolio-grid">
17
- <a class="oc-project-card oc-accent--green" href="#p1">
18
- <span class="oc-project-card__frame"><span class="oc-project-card__bar" aria-hidden="true"><i></i><i></i><i></i></span><span class="oc-project-card__shot" role="img" aria-label="Northwind Bakery, screenshot"></span></span>
19
- <span class="oc-project-card__body"><span class="oc-project-card__type">Website</span><span class="oc-project-card__name">Northwind Bakery</span><span class="oc-project-card__meta">Food &amp; retail &middot; Antwerp</span><span class="oc-project-card__more">View project</span></span>
20
- </a>
21
- <a class="oc-project-card oc-accent--violet" href="#p2">
22
- <span class="oc-project-card__frame"><span class="oc-project-card__bar" aria-hidden="true"><i></i><i></i><i></i></span><span class="oc-project-card__shot" role="img" aria-label="Fjord Interiors, screenshot"></span></span>
23
- <span class="oc-project-card__body"><span class="oc-project-card__type">Web app</span><span class="oc-project-card__name">Fjord Interiors</span><span class="oc-project-card__meta">Interior design &middot; Ghent</span><span class="oc-project-card__more">View project</span></span>
24
- </a>
25
- <a class="oc-project-card oc-accent--orange" href="#p3">
26
- <span class="oc-project-card__frame"><span class="oc-project-card__bar" aria-hidden="true"><i></i><i></i><i></i></span><span class="oc-project-card__shot" role="img" aria-label="Harbor Logistics, screenshot"></span></span>
27
- <span class="oc-project-card__body"><span class="oc-project-card__type">Desktop tool</span><span class="oc-project-card__name">Harbor Logistics</span><span class="oc-project-card__meta">Transport &middot; Rotterdam</span><span class="oc-project-card__more">View project</span></span>
28
- </a>
29
- </div>
30
- </div>
31
- </section>
1
+ <!-- OmniaUI block: portfolio-grid - Portfolio section: heading with an "all projects" link and a grid of project cards. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS.
2
+ File: packages/blocks/blocks/portfolio-grid.html | Map: section -> container -> head (eyebrow, title, lead, link) -> grid of .oc-project-card
3
+ Class API: .oc-block-portfolio (modifier --two: wider cards), -head, -lead, -grid (--oc-portfolio-min sets the card width).
4
+ Cards are the project-card component; give each an .oc-accent--* preset for its placeholder.
5
+ -->
6
+ <section class="oc-block-portfolio oc-section-pad" aria-labelledby="oc-portfolio-title">
7
+ <div class="oc-container">
8
+ <div class="oc-block-portfolio-head">
9
+ <div>
10
+ <p class="oc-eyebrow">Our work</p>
11
+ <h2 class="oc-display oc-display--md" id="oc-portfolio-title">Selected <span class="oc-text-gradient">projects</span></h2>
12
+ <p class="oc-block-portfolio-lead">Websites and apps we designed, built and still maintain.</p>
13
+ </div>
14
+ <a class="oc-link-arrow" href="#projects">All projects</a>
15
+ </div>
16
+ <div class="oc-block-portfolio-grid">
17
+ <a class="oc-project-card oc-accent--green" href="#p1">
18
+ <span class="oc-project-card__frame"><span class="oc-project-card__bar" aria-hidden="true"><i></i><i></i><i></i></span><span class="oc-project-card__shot" role="img" aria-label="Northwind Bakery, screenshot"></span></span>
19
+ <span class="oc-project-card__body"><span class="oc-project-card__type">Website</span><span class="oc-project-card__name">Northwind Bakery</span><span class="oc-project-card__meta">Food &amp; retail &middot; Antwerp</span><span class="oc-project-card__more">View project</span></span>
20
+ </a>
21
+ <a class="oc-project-card oc-accent--violet" href="#p2">
22
+ <span class="oc-project-card__frame"><span class="oc-project-card__bar" aria-hidden="true"><i></i><i></i><i></i></span><span class="oc-project-card__shot" role="img" aria-label="Fjord Interiors, screenshot"></span></span>
23
+ <span class="oc-project-card__body"><span class="oc-project-card__type">Web app</span><span class="oc-project-card__name">Fjord Interiors</span><span class="oc-project-card__meta">Interior design &middot; Ghent</span><span class="oc-project-card__more">View project</span></span>
24
+ </a>
25
+ <a class="oc-project-card oc-accent--orange" href="#p3">
26
+ <span class="oc-project-card__frame"><span class="oc-project-card__bar" aria-hidden="true"><i></i><i></i><i></i></span><span class="oc-project-card__shot" role="img" aria-label="Harbor Logistics, screenshot"></span></span>
27
+ <span class="oc-project-card__body"><span class="oc-project-card__type">Desktop tool</span><span class="oc-project-card__name">Harbor Logistics</span><span class="oc-project-card__meta">Transport &middot; Rotterdam</span><span class="oc-project-card__more">View project</span></span>
28
+ </a>
29
+ </div>
30
+ </div>
31
+ </section>
@@ -1,42 +1,42 @@
1
- <!-- OmniaUI block: pricing — Pricing cards with a featured plan. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS. -->
2
- <div class="oc-block-pricing">
3
- <h2>Simple, transparent pricing</h2>
4
- <p>Choose the plan that fits your needs.</p>
5
- <div class="oc-block-pricing-grid">
6
- <div class="oc-block-pricing-card">
7
- <p class="oc-block-pricing-name">Free</p>
8
- <p class="oc-block-pricing-desc">For personal projects</p>
9
- <p class="oc-block-pricing-price">&euro;0 <span>/month</span></p>
10
- <ul class="oc-block-pricing-features">
11
- <li>Core utilities</li>
12
- <li>5 components</li>
13
- <li>Community support</li>
14
- </ul>
15
- <button class="oc-btn oc-btn--outline" style="width:100%;">Get started</button>
16
- </div>
17
- <div class="oc-block-pricing-card oc-block-pricing-card--featured">
18
- <p class="oc-block-pricing-name">Pro</p>
19
- <p class="oc-block-pricing-desc">For teams and businesses</p>
20
- <p class="oc-block-pricing-price">&euro;29 <span>/month</span></p>
21
- <ul class="oc-block-pricing-features">
22
- <li>All utilities + responsive</li>
23
- <li>All components</li>
24
- <li>All blocks</li>
25
- <li>Priority support</li>
26
- </ul>
27
- <button class="oc-btn" style="width:100%;">Subscribe</button>
28
- </div>
29
- <div class="oc-block-pricing-card">
30
- <p class="oc-block-pricing-name">Enterprise</p>
31
- <p class="oc-block-pricing-desc">Custom solutions</p>
32
- <p class="oc-block-pricing-price">Custom</p>
33
- <ul class="oc-block-pricing-features">
34
- <li>Everything in Pro</li>
35
- <li>Custom adapters</li>
36
- <li>Dedicated support</li>
37
- <li>SLA guarantee</li>
38
- </ul>
39
- <button class="oc-btn oc-btn--outline" style="width:100%;">Contact sales</button>
40
- </div>
41
- </div>
42
- </div>
1
+ <!-- OmniaUI block: pricing — Pricing cards with a featured plan. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS. -->
2
+ <div class="oc-block-pricing">
3
+ <h2>Simple, transparent pricing</h2>
4
+ <p>Choose the plan that fits your needs.</p>
5
+ <div class="oc-block-pricing-grid">
6
+ <div class="oc-block-pricing-card">
7
+ <p class="oc-block-pricing-name">Free</p>
8
+ <p class="oc-block-pricing-desc">For personal projects</p>
9
+ <p class="oc-block-pricing-price">&euro;0 <span>/month</span></p>
10
+ <ul class="oc-block-pricing-features">
11
+ <li>Core utilities</li>
12
+ <li>5 components</li>
13
+ <li>Community support</li>
14
+ </ul>
15
+ <button class="oc-btn oc-btn--outline" style="width:100%;">Get started</button>
16
+ </div>
17
+ <div class="oc-block-pricing-card oc-block-pricing-card--featured">
18
+ <p class="oc-block-pricing-name">Pro</p>
19
+ <p class="oc-block-pricing-desc">For teams and businesses</p>
20
+ <p class="oc-block-pricing-price">&euro;29 <span>/month</span></p>
21
+ <ul class="oc-block-pricing-features">
22
+ <li>All utilities + responsive</li>
23
+ <li>All components</li>
24
+ <li>All blocks</li>
25
+ <li>Priority support</li>
26
+ </ul>
27
+ <button class="oc-btn" style="width:100%;">Subscribe</button>
28
+ </div>
29
+ <div class="oc-block-pricing-card">
30
+ <p class="oc-block-pricing-name">Enterprise</p>
31
+ <p class="oc-block-pricing-desc">Custom solutions</p>
32
+ <p class="oc-block-pricing-price">Custom</p>
33
+ <ul class="oc-block-pricing-features">
34
+ <li>Everything in Pro</li>
35
+ <li>Custom adapters</li>
36
+ <li>Dedicated support</li>
37
+ <li>SLA guarantee</li>
38
+ </ul>
39
+ <button class="oc-btn oc-btn--outline" style="width:100%;">Contact sales</button>
40
+ </div>
41
+ </div>
42
+ </div>
@@ -1,19 +1,19 @@
1
- <!-- OmniaUI block: process — Numbered steps (CSS counter) + an endless marquee of technologies. Needs @birdycom/omniaui. -->
2
- <section class="oc-section-pad">
3
- <div class="oc-container">
4
- <p class="oc-eyebrow">How we work</p>
5
- <h2 class="oc-display oc-display--md">From idea to <span class="oc-text-gradient">support</span>, one point of contact.</h2>
6
- <ol class="oc-steps">
7
- <li><h3>Listen</h3><p>We start with your workflow, not with technology.</p></li>
8
- <li><h3>Design</h3><p>Screens and data model, approved before we build.</p></li>
9
- <li><h3>Build</h3><p>Short iterations you can test along the way.</p></li>
10
- <li><h3>Support</h3><p>Updates, hosting and help - for years.</p></li>
11
- </ol>
12
- <div class="oc-marquee mt-4" aria-label="Technologies">
13
- <div class="oc-marquee__track">
14
- <span class="oc-marquee__item">PHP 8.4</span><span class="oc-marquee__item">MySQL</span><span class="oc-marquee__item">OmniaCSS</span><span class="oc-marquee__item">WordPress</span><span class="oc-marquee__item">.NET</span><span class="oc-marquee__item">npm</span>
15
- <span class="oc-marquee__item" aria-hidden="true">PHP 8.4</span><span class="oc-marquee__item" aria-hidden="true">MySQL</span><span class="oc-marquee__item" aria-hidden="true">OmniaCSS</span><span class="oc-marquee__item" aria-hidden="true">WordPress</span><span class="oc-marquee__item" aria-hidden="true">.NET</span><span class="oc-marquee__item" aria-hidden="true">npm</span>
16
- </div>
17
- </div>
18
- </div>
19
- </section>
1
+ <!-- OmniaUI block: process — Numbered steps (CSS counter) + an endless marquee of technologies. Needs @birdycom/omniaui. -->
2
+ <section class="oc-section-pad">
3
+ <div class="oc-container">
4
+ <p class="oc-eyebrow">How we work</p>
5
+ <h2 class="oc-display oc-display--md">From idea to <span class="oc-text-gradient">support</span>, one point of contact.</h2>
6
+ <ol class="oc-steps">
7
+ <li><h3>Listen</h3><p>We start with your workflow, not with technology.</p></li>
8
+ <li><h3>Design</h3><p>Screens and data model, approved before we build.</p></li>
9
+ <li><h3>Build</h3><p>Short iterations you can test along the way.</p></li>
10
+ <li><h3>Support</h3><p>Updates, hosting and help - for years.</p></li>
11
+ </ol>
12
+ <div class="oc-marquee mt-4" aria-label="Technologies">
13
+ <div class="oc-marquee__track">
14
+ <span class="oc-marquee__item">PHP 8.4</span><span class="oc-marquee__item">MySQL</span><span class="oc-marquee__item">OmniaCSS</span><span class="oc-marquee__item">WordPress</span><span class="oc-marquee__item">.NET</span><span class="oc-marquee__item">npm</span>
15
+ <span class="oc-marquee__item" aria-hidden="true">PHP 8.4</span><span class="oc-marquee__item" aria-hidden="true">MySQL</span><span class="oc-marquee__item" aria-hidden="true">OmniaCSS</span><span class="oc-marquee__item" aria-hidden="true">WordPress</span><span class="oc-marquee__item" aria-hidden="true">.NET</span><span class="oc-marquee__item" aria-hidden="true">npm</span>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </section>
@@ -1,37 +1,37 @@
1
- <!-- OmniaUI block: product-grid — Section title + grid of product cards, each with its own accent color. Needs @birdycom/omniaui. -->
2
- <section class="oc-section-pad">
3
- <div class="oc-container">
4
- <p class="oc-eyebrow">Software</p>
5
- <h2 class="oc-display oc-display--md">Products, custom work and tools. <span class="oc-text-gradient">All our own work.</span></h2>
6
- <div class="oc-card-grid">
7
- <a class="oc-product-card oc-accent--green" href="#">
8
- <div class="oc-product-card__top"><span class="oc-icon-tile" aria-hidden="true">&#9670;</span><span class="oc-pill">Own product</span></div>
9
- <h3 class="oc-product-card__name">OmniaDesk</h3>
10
- <p class="oc-product-card__tagline">Modular ERP for small businesses</p>
11
- <p class="oc-product-card__summary">CRM, sales, invoicing, bookkeeping and stock in one web application.</p>
12
- <span class="oc-product-card__more">Discover OmniaDesk</span>
13
- </a>
14
- <a class="oc-product-card oc-accent--orange" href="#">
15
- <div class="oc-product-card__top"><span class="oc-icon-tile" aria-hidden="true">&#9874;</span><span class="oc-pill">Custom work</span></div>
16
- <h3 class="oc-product-card__name">Korrekt Hub</h3>
17
- <p class="oc-product-card__tagline">Custom platform for interior builders</p>
18
- <p class="oc-product-card__summary">Work orders, projects, quotes, stock, planning and HR in one app.</p>
19
- <span class="oc-product-card__more">Discover Korrekt Hub</span>
20
- </a>
21
- <a class="oc-product-card oc-accent--violet" href="#">
22
- <div class="oc-product-card__top"><span class="oc-icon-tile" aria-hidden="true">&#9673;</span><span class="oc-pill">Framework</span></div>
23
- <h3 class="oc-product-card__name">OmniaCSS</h3>
24
- <p class="oc-product-card__tagline">The design system behind our apps</p>
25
- <p class="oc-product-card__summary">Utility-first CSS with ready components, blocks and more than 10,000 icons.</p>
26
- <span class="oc-product-card__more">Discover OmniaCSS</span>
27
- </a>
28
- <a class="oc-product-card oc-accent--cyan" href="#">
29
- <div class="oc-product-card__top"><span class="oc-icon-tile" aria-hidden="true">&#9638;</span><span class="oc-pill">Tool</span></div>
30
- <h3 class="oc-product-card__name">HistoryTabs</h3>
31
- <p class="oc-product-card__tagline">Never lose your tabs again</p>
32
- <p class="oc-product-card__summary">A Windows tool that brings back browser windows with all their tabs.</p>
33
- <span class="oc-product-card__more">Discover HistoryTabs</span>
34
- </a>
35
- </div>
36
- </div>
37
- </section>
1
+ <!-- OmniaUI block: product-grid — Section title + grid of product cards, each with its own accent color. Needs @birdycom/omniaui. -->
2
+ <section class="oc-section-pad">
3
+ <div class="oc-container">
4
+ <p class="oc-eyebrow">Software</p>
5
+ <h2 class="oc-display oc-display--md">Products, custom work and tools. <span class="oc-text-gradient">All our own work.</span></h2>
6
+ <div class="oc-card-grid">
7
+ <a class="oc-product-card oc-accent--green" href="#">
8
+ <div class="oc-product-card__top"><span class="oc-icon-tile" aria-hidden="true">&#9670;</span><span class="oc-pill">Own product</span></div>
9
+ <h3 class="oc-product-card__name">OmniaDesk</h3>
10
+ <p class="oc-product-card__tagline">Modular ERP for small businesses</p>
11
+ <p class="oc-product-card__summary">CRM, sales, invoicing, bookkeeping and stock in one web application.</p>
12
+ <span class="oc-product-card__more">Discover OmniaDesk</span>
13
+ </a>
14
+ <a class="oc-product-card oc-accent--orange" href="#">
15
+ <div class="oc-product-card__top"><span class="oc-icon-tile" aria-hidden="true">&#9874;</span><span class="oc-pill">Custom work</span></div>
16
+ <h3 class="oc-product-card__name">Korrekt Hub</h3>
17
+ <p class="oc-product-card__tagline">Custom platform for interior builders</p>
18
+ <p class="oc-product-card__summary">Work orders, projects, quotes, stock, planning and HR in one app.</p>
19
+ <span class="oc-product-card__more">Discover Korrekt Hub</span>
20
+ </a>
21
+ <a class="oc-product-card oc-accent--violet" href="#">
22
+ <div class="oc-product-card__top"><span class="oc-icon-tile" aria-hidden="true">&#9673;</span><span class="oc-pill">Framework</span></div>
23
+ <h3 class="oc-product-card__name">OmniaCSS</h3>
24
+ <p class="oc-product-card__tagline">The design system behind our apps</p>
25
+ <p class="oc-product-card__summary">Utility-first CSS with ready components, blocks and more than 10,000 icons.</p>
26
+ <span class="oc-product-card__more">Discover OmniaCSS</span>
27
+ </a>
28
+ <a class="oc-product-card oc-accent--cyan" href="#">
29
+ <div class="oc-product-card__top"><span class="oc-icon-tile" aria-hidden="true">&#9638;</span><span class="oc-pill">Tool</span></div>
30
+ <h3 class="oc-product-card__name">HistoryTabs</h3>
31
+ <p class="oc-product-card__tagline">Never lose your tabs again</p>
32
+ <p class="oc-product-card__summary">A Windows tool that brings back browser windows with all their tabs.</p>
33
+ <span class="oc-product-card__more">Discover HistoryTabs</span>
34
+ </a>
35
+ </div>
36
+ </div>
37
+ </section>
@@ -1,27 +1,27 @@
1
- <!-- OmniaUI block: profile-header - Channel / profile header: banner, overhanging avatar, name, meta, actions and a tab bar. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS.
2
- File: packages/blocks/blocks/profile-header.html | Map: section.oc-block-profile -> banner -> bar (avatar, info, actions) -> nav tabs
3
- Class API: .oc-block-profile (modifier --compact: low banner, smaller avatar), -banner (style="--oc-profile-banner: url(…)",
4
- default gradient from the .oc-accent--* preset), -bar, -avatar (on an .oc-avatar), -info, -name, -meta, -bio, -actions,
5
- -tabs (nav), -tab (link; aria-current="page" marks the active tab).
6
- -->
7
- <section class="oc-block-profile oc-accent--violet" aria-labelledby="oc-profile-name">
8
- <div class="oc-block-profile-banner" aria-hidden="true"></div>
9
- <div class="oc-block-profile-bar">
10
- <span class="oc-avatar oc-block-profile-avatar" aria-hidden="true">AS</span>
11
- <div class="oc-block-profile-info">
12
- <h1 class="oc-block-profile-name" id="oc-profile-name">Acme Studio</h1>
13
- <p class="oc-block-profile-meta">@acmestudio &middot; 12.4K followers &middot; 86 videos</p>
14
- <p class="oc-block-profile-bio">Short tutorials about web design, CSS and building small business apps.</p>
15
- </div>
16
- <div class="oc-block-profile-actions">
17
- <button class="oc-btn" type="button">Follow</button>
18
- <button class="oc-btn oc-btn--outline" type="button">Share</button>
19
- </div>
20
- </div>
21
- <nav class="oc-block-profile-tabs" aria-label="Profile sections">
22
- <a class="oc-block-profile-tab" href="#home" aria-current="page">Home</a>
23
- <a class="oc-block-profile-tab" href="#videos">Videos</a>
24
- <a class="oc-block-profile-tab" href="#playlists">Playlists</a>
25
- <a class="oc-block-profile-tab" href="#about">About</a>
26
- </nav>
27
- </section>
1
+ <!-- OmniaUI block: profile-header - Channel / profile header: banner, overhanging avatar, name, meta, actions and a tab bar. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS.
2
+ File: packages/blocks/blocks/profile-header.html | Map: section.oc-block-profile -> banner -> bar (avatar, info, actions) -> nav tabs
3
+ Class API: .oc-block-profile (modifier --compact: low banner, smaller avatar), -banner (style="--oc-profile-banner: url(…)",
4
+ default gradient from the .oc-accent--* preset), -bar, -avatar (on an .oc-avatar), -info, -name, -meta, -bio, -actions,
5
+ -tabs (nav), -tab (link; aria-current="page" marks the active tab).
6
+ -->
7
+ <section class="oc-block-profile oc-accent--violet" aria-labelledby="oc-profile-name">
8
+ <div class="oc-block-profile-banner" aria-hidden="true"></div>
9
+ <div class="oc-block-profile-bar">
10
+ <span class="oc-avatar oc-block-profile-avatar" aria-hidden="true">AS</span>
11
+ <div class="oc-block-profile-info">
12
+ <h1 class="oc-block-profile-name" id="oc-profile-name">Acme Studio</h1>
13
+ <p class="oc-block-profile-meta">@acmestudio &middot; 12.4K followers &middot; 86 videos</p>
14
+ <p class="oc-block-profile-bio">Short tutorials about web design, CSS and building small business apps.</p>
15
+ </div>
16
+ <div class="oc-block-profile-actions">
17
+ <button class="oc-btn" type="button">Follow</button>
18
+ <button class="oc-btn oc-btn--outline" type="button">Share</button>
19
+ </div>
20
+ </div>
21
+ <nav class="oc-block-profile-tabs" aria-label="Profile sections">
22
+ <a class="oc-block-profile-tab" href="#home" aria-current="page">Home</a>
23
+ <a class="oc-block-profile-tab" href="#videos">Videos</a>
24
+ <a class="oc-block-profile-tab" href="#playlists">Playlists</a>
25
+ <a class="oc-block-profile-tab" href="#about">About</a>
26
+ </nav>
27
+ </section>
@@ -1,45 +1,45 @@
1
- <!-- OmniaUI block: reset-password - Choose a new password: password with reveal, confirmation, a rules hint and submit. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS.
2
- Class API (modifiers are extra classes / attributes on the same element):
3
- .oc-block-authpage: Page wrapper that centers one card. Modifier: --plain (page background instead of muted)
4
- .oc-block-authcard: Card column. Modifiers: --flat (no card chrome), --wide
5
- .oc-block-authcard-logo: Icon tile above the title
6
- .oc-block-authcard-head / -title / -text: Centered heading block, title and description
7
- .oc-block-authcard-fields / -row: Field stack and a justified row (remember me / forgot password)
8
- .oc-block-authcard-submit: Full-width submit button
9
- .oc-block-authcard-foot / -legal / -hint: Switch-form line, legal line, small helper text
10
- .oc-block-authcard-center: Centered column (OTP input)
11
- .oc-block-authsocial: Auto-fit grid of social buttons
12
- .oc-block-authduo: Split layout root (container query: two columns from 42rem of its own width). Modifier: --reverse
13
- .oc-block-authduo-grid / -panel / -form: Grid, brand panel (modifiers --image, --muted) and form column
14
- .oc-block-authduo-logo / -quote: Panel logo and quote
15
- .oc-block-authmin: Minimal centered column without a card
16
- .oc-separator-text: Divider with centered text (separator component)
17
- -->
18
- <div class="oc-block-authpage oc-block-authpage--plain">
19
- <form class="oc-block-authcard" action="#" method="post">
20
- <span class="oc-block-authcard-logo"><svg class="" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></svg></span>
21
- <div class="oc-block-authcard-head">
22
- <h1 class="oc-block-authcard-title">Set a new password</h1>
23
- <p class="oc-block-authcard-text">Your new password must differ from earlier ones</p>
24
- </div>
25
- <div class="oc-block-authcard-fields">
26
- <div class="oc-field">
27
- <label class="oc-field-label" for="oc-reset-password">New password</label>
28
- <div class="oc-input-reveal">
29
- <input class="oc-input" id="oc-reset-password" name="oc-reset-password" type="password" autocomplete="new-password" required>
30
- <button class="oc-input-reveal-button" type="button" aria-pressed="false" aria-label="Toggle password visibility">Show</button>
31
- </div>
32
- </div>
33
- <div class="oc-field">
34
- <label class="oc-field-label" for="oc-reset-confirm">Confirm password</label>
35
- <div class="oc-input-reveal">
36
- <input class="oc-input" id="oc-reset-confirm" name="oc-reset-confirm" type="password" autocomplete="new-password" required>
37
- <button class="oc-input-reveal-button" type="button" aria-pressed="false" aria-label="Toggle password visibility">Show</button>
38
- </div>
39
- </div>
40
- <p class="oc-block-authcard-hint">At least 8 characters, with a number and a symbol.</p>
41
- <button class="oc-btn oc-block-authcard-submit" type="submit">Reset password</button>
42
- </div>
43
- <p class="oc-block-authcard-foot"><a href="#">Back to sign in</a></p>
44
- </form>
45
- </div>
1
+ <!-- OmniaUI block: reset-password - Choose a new password: password with reveal, confirmation, a rules hint and submit. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS.
2
+ Class API (modifiers are extra classes / attributes on the same element):
3
+ .oc-block-authpage: Page wrapper that centers one card. Modifier: --plain (page background instead of muted)
4
+ .oc-block-authcard: Card column. Modifiers: --flat (no card chrome), --wide
5
+ .oc-block-authcard-logo: Icon tile above the title
6
+ .oc-block-authcard-head / -title / -text: Centered heading block, title and description
7
+ .oc-block-authcard-fields / -row: Field stack and a justified row (remember me / forgot password)
8
+ .oc-block-authcard-submit: Full-width submit button
9
+ .oc-block-authcard-foot / -legal / -hint: Switch-form line, legal line, small helper text
10
+ .oc-block-authcard-center: Centered column (OTP input)
11
+ .oc-block-authsocial: Auto-fit grid of social buttons
12
+ .oc-block-authduo: Split layout root (container query: two columns from 42rem of its own width). Modifier: --reverse
13
+ .oc-block-authduo-grid / -panel / -form: Grid, brand panel (modifiers --image, --muted, --photo with style="--oc-authduo-photo: url(…)") and form column
14
+ .oc-block-authduo-logo / -quote: Panel logo and quote
15
+ .oc-block-authmin: Minimal centered column without a card
16
+ .oc-separator-text: Divider with centered text (separator component)
17
+ -->
18
+ <div class="oc-block-authpage oc-block-authpage--plain">
19
+ <form class="oc-block-authcard" action="#" method="post">
20
+ <span class="oc-block-authcard-logo"><svg class="" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></svg></span>
21
+ <div class="oc-block-authcard-head">
22
+ <h1 class="oc-block-authcard-title">Set a new password</h1>
23
+ <p class="oc-block-authcard-text">Your new password must differ from earlier ones</p>
24
+ </div>
25
+ <div class="oc-block-authcard-fields">
26
+ <div class="oc-field">
27
+ <label class="oc-field-label" for="oc-reset-password">New password</label>
28
+ <div class="oc-input-reveal">
29
+ <input class="oc-input" id="oc-reset-password" name="oc-reset-password" type="password" autocomplete="new-password" required>
30
+ <button class="oc-input-reveal-button" type="button" aria-pressed="false" aria-label="Toggle password visibility">Show</button>
31
+ </div>
32
+ </div>
33
+ <div class="oc-field">
34
+ <label class="oc-field-label" for="oc-reset-confirm">Confirm password</label>
35
+ <div class="oc-input-reveal">
36
+ <input class="oc-input" id="oc-reset-confirm" name="oc-reset-confirm" type="password" autocomplete="new-password" required>
37
+ <button class="oc-input-reveal-button" type="button" aria-pressed="false" aria-label="Toggle password visibility">Show</button>
38
+ </div>
39
+ </div>
40
+ <p class="oc-block-authcard-hint">At least 8 characters, with a number and a symbol.</p>
41
+ <button class="oc-btn oc-block-authcard-submit" type="submit">Reset password</button>
42
+ </div>
43
+ <p class="oc-block-authcard-foot"><a href="#">Back to sign in</a></p>
44
+ </form>
45
+ </div>