@birdycom/omniaui-blocks 0.0.0-stage → 0.11.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.
Files changed (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -2
  3. package/blocks/about-timeline.html +23 -0
  4. package/blocks/app-header.html +32 -0
  5. package/blocks/app-shell.html +84 -0
  6. package/blocks/auth-split.html +45 -0
  7. package/blocks/auth.html +21 -0
  8. package/blocks/contact-grid.html +38 -0
  9. package/blocks/cta.html +8 -0
  10. package/blocks/data-table.html +111 -0
  11. package/blocks/faq.html +33 -0
  12. package/blocks/features.html +18 -0
  13. package/blocks/footer.html +41 -0
  14. package/blocks/forgot-password.html +34 -0
  15. package/blocks/form-page.html +28 -0
  16. package/blocks/hero-code.html +27 -0
  17. package/blocks/hero-orbit.html +38 -0
  18. package/blocks/hero-split.html +12 -0
  19. package/blocks/hero.html +10 -0
  20. package/blocks/login-01.html +41 -0
  21. package/blocks/login-02.html +55 -0
  22. package/blocks/login-03.html +47 -0
  23. package/blocks/module-header.html +24 -0
  24. package/blocks/otp-01.html +36 -0
  25. package/blocks/otp-02.html +46 -0
  26. package/blocks/page-hero.html +10 -0
  27. package/blocks/portfolio-grid.html +31 -0
  28. package/blocks/pricing.html +42 -0
  29. package/blocks/process.html +19 -0
  30. package/blocks/product-grid.html +37 -0
  31. package/blocks/profile-header.html +27 -0
  32. package/blocks/reset-password.html +45 -0
  33. package/blocks/showcase.html +27 -0
  34. package/blocks/sidebar-01.html +56 -0
  35. package/blocks/sidebar-02.html +55 -0
  36. package/blocks/sidebar-03.html +53 -0
  37. package/blocks/sidebar-04.html +56 -0
  38. package/blocks/sidebar-05.html +68 -0
  39. package/blocks/signup-01.html +53 -0
  40. package/blocks/signup-02.html +56 -0
  41. package/blocks/site-footer.html +39 -0
  42. package/blocks/site-header.html +14 -0
  43. package/blocks/spotlight.html +22 -0
  44. package/blocks/stats-counter.html +15 -0
  45. package/blocks/stats.html +19 -0
  46. package/blocks/team-list.html +30 -0
  47. package/blocks/two-factor.html +33 -0
  48. package/blocks/wizard-dialog.html +36 -0
  49. package/dist/blocks.css +1431 -0
  50. package/dist/blocks.min.css +1 -0
  51. package/dist/parts/.gitkeep +0 -0
  52. package/dist/parts/site-about-timeline.css +61 -0
  53. package/dist/parts/site-contact-grid.css +58 -0
  54. package/dist/parts/site-faq.css +52 -0
  55. package/dist/parts/site-hero-orbit.css +62 -0
  56. package/dist/parts/site-portfolio-grid.css +23 -0
  57. package/dist/parts/site-profile-header.css +77 -0
  58. package/manifest.json +418 -0
  59. package/package.json +53 -4
  60. package/pro.json +140 -0
@@ -0,0 +1,38 @@
1
+ <!-- OmniaUI block: hero-orbit - Landing hero with a code window and product marks that slowly orbit around it. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS.
2
+ File: packages/blocks/blocks/hero-orbit.html | Map: section -> container + split -> copy (eyebrow, display, lead, buttons) -> visual (ring with marks + center window)
3
+ Class API: .oc-block-orbit-visual (square stage), -ring (turning circle), -mark (style="--oc-orbit-angle: 60deg"),
4
+ -center (the code window or any visual). --oc-orbit-duration sets the speed (default 60s). Reduced motion: no orbit.
5
+ Copy uses the showcase classes (.oc-eyebrow, .oc-display, .oc-text-gradient, .oc-lead, .oc-btn--gradient / --glass).
6
+ -->
7
+ <section class="oc-block-orbit oc-section-pad">
8
+ <div class="oc-container oc-split">
9
+ <div>
10
+ <p class="oc-eyebrow">Software studio &middot; since 2012</p>
11
+ <h1 class="oc-display">One team for all your <span class="oc-text-gradient">software</span>.</h1>
12
+ <p class="oc-lead">Business apps, websites and desktop tools. We design, build and maintain them, and stay your single point of contact.</p>
13
+ <div class="flex flex-wrap gap-1 mt-2">
14
+ <a class="oc-btn oc-btn--gradient oc-btn--lg" href="#products">See our products &rarr;</a>
15
+ <a class="oc-btn oc-btn--glass oc-btn--lg" href="#contact">Start a project</a>
16
+ </div>
17
+ </div>
18
+ <div class="oc-block-orbit-visual">
19
+ <div class="oc-block-orbit-ring" aria-hidden="true">
20
+ <span class="oc-block-orbit-mark" style="--oc-orbit-angle: 0deg;"><span class="oc-product-mark oc-product-mark--sm oc-accent--green">&#9670;</span></span>
21
+ <span class="oc-block-orbit-mark" style="--oc-orbit-angle: 60deg;"><span class="oc-product-mark oc-product-mark--sm oc-accent--violet">&#9673;</span></span>
22
+ <span class="oc-block-orbit-mark" style="--oc-orbit-angle: 120deg;"><span class="oc-product-mark oc-product-mark--sm oc-accent--orange">&#9650;</span></span>
23
+ <span class="oc-block-orbit-mark" style="--oc-orbit-angle: 180deg;"><span class="oc-product-mark oc-product-mark--sm oc-accent--cyan">&#9733;</span></span>
24
+ <span class="oc-block-orbit-mark" style="--oc-orbit-angle: 240deg;"><span class="oc-product-mark oc-product-mark--sm oc-accent--red">&#9829;</span></span>
25
+ <span class="oc-block-orbit-mark" style="--oc-orbit-angle: 300deg;"><span class="oc-product-mark oc-product-mark--sm oc-accent--yellow">&#9728;</span></span>
26
+ </div>
27
+ <div class="oc-code-window oc-block-orbit-center">
28
+ <div class="oc-code-window__bar"><i></i><i></i><i></i><span class="oc-code-window__title">products.php</span></div>
29
+ <pre class="oc-code-window__body">return [
30
+ 'erp' => AcmeDesk::class,
31
+ 'shop' => AcmeShop::class,
32
+ 'design' => AcmeDesign::class,
33
+ 'next' => YourProject::class,
34
+ ];</pre>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </section>
@@ -0,0 +1,12 @@
1
+ <!-- OmniaUI block: hero-split — Hero with text left and visual right. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS. -->
2
+ <div class="oc-block-hero-split">
3
+ <div>
4
+ <h1>Ship products, not CSS</h1>
5
+ <p>Stop writing repetitive styles. Use pre-built utilities and components to move fast.</p>
6
+ <div class="oc-block-hero-actions justify-start">
7
+ <button class="oc-btn">Start building</button>
8
+ <button class="oc-btn oc-btn--ghost">Learn more</button>
9
+ </div>
10
+ </div>
11
+ <div class="oc-block-hero-visual">Preview / Image placeholder</div>
12
+ </div>
@@ -0,0 +1,10 @@
1
+ <!-- OmniaUI block: hero — Centered hero with badge, headline, text and actions. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS. -->
2
+ <div class="oc-block-hero">
3
+ <span class="oc-block-hero-badge">New in v0.1.6</span>
4
+ <h1>Build faster with OmniaCSS</h1>
5
+ <p>A utility-first CSS framework with component primitives and pre-composed blocks for modern web apps.</p>
6
+ <div class="oc-block-hero-actions">
7
+ <button class="oc-btn oc-btn--lg">Get started</button>
8
+ <button class="oc-btn oc-btn--outline oc-btn--lg">View docs</button>
9
+ </div>
10
+ </div>
@@ -0,0 +1,41 @@
1
+ <!-- OmniaUI block: login-01 - Centered sign-in card with e-mail, password and a link to sign up. 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"><path d="m12 3 9 5-9 5-9-5z"/><path d="m3 13 9 5 9-5"/></svg></span>
21
+ <div class="oc-block-authcard-head">
22
+ <h1 class="oc-block-authcard-title">Login to your account</h1>
23
+ <p class="oc-block-authcard-text">Enter your e-mail below to login</p>
24
+ </div>
25
+ <div class="oc-block-authcard-fields">
26
+ <div class="oc-field">
27
+ <label class="oc-field-label" for="oc-login01-email">E-mail</label>
28
+ <input class="oc-input" id="oc-login01-email" name="email" type="email" autocomplete="username" required placeholder="name@company.com">
29
+ </div>
30
+ <div class="oc-field">
31
+ <label class="oc-field-label" for="oc-login01-password">Password</label>
32
+ <div class="oc-input-reveal">
33
+ <input class="oc-input" id="oc-login01-password" name="oc-login01-password" type="password" autocomplete="current-password" required>
34
+ <button class="oc-input-reveal-button" type="button" aria-pressed="false" aria-label="Toggle password visibility">Show</button>
35
+ </div>
36
+ </div>
37
+ <button class="oc-btn oc-block-authcard-submit" type="submit">Login</button>
38
+ </div>
39
+ <p class="oc-block-authcard-foot">Don't have an account? <a href="#">Sign up</a></p>
40
+ </form>
41
+ </div>
@@ -0,0 +1,55 @@
1
+ <!-- OmniaUI block: login-02 - Two columns: image/brand panel with a quote and the form on the other side; the panel hides when the block is narrow. 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-authduo">
19
+ <div class="oc-block-authduo-grid">
20
+ <aside class="oc-block-authduo-panel oc-block-authduo-panel--image">
21
+ <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>
22
+ <blockquote class="oc-block-authduo-quote">
23
+ <p>&ldquo;This workspace saved me hours of admin every week.&rdquo;</p>
24
+ <footer>Sofia Davis, operations lead</footer>
25
+ </blockquote>
26
+ </aside>
27
+ <div class="oc-block-authduo-form">
28
+ <form class="oc-block-authcard oc-block-authcard--flat" action="#" method="post">
29
+ <div class="oc-block-authcard-head">
30
+ <h1 class="oc-block-authcard-title">Welcome back</h1>
31
+ <p class="oc-block-authcard-text">Sign in to your workspace</p>
32
+ </div>
33
+ <div class="oc-block-authcard-fields">
34
+ <div class="oc-field">
35
+ <label class="oc-field-label" for="oc-login02-email">E-mail</label>
36
+ <input class="oc-input" id="oc-login02-email" name="email" type="email" autocomplete="username" required placeholder="name@company.com">
37
+ </div>
38
+ <div class="oc-field">
39
+ <label class="oc-field-label" for="oc-login02-password">Password</label>
40
+ <div class="oc-input-reveal">
41
+ <input class="oc-input" id="oc-login02-password" name="oc-login02-password" type="password" autocomplete="current-password" required>
42
+ <button class="oc-input-reveal-button" type="button" aria-pressed="false" aria-label="Toggle password visibility">Show</button>
43
+ </div>
44
+ </div>
45
+ <div class="oc-block-authcard-row">
46
+ <label><input class="oc-checkbox" type="checkbox" name="remember"> Remember me</label>
47
+ <a class="oc-link" href="#">Forgot password?</a>
48
+ </div>
49
+ <button class="oc-btn oc-block-authcard-submit" type="submit">Sign in</button>
50
+ </div>
51
+ <p class="oc-block-authcard-foot">No account yet? <a href="#">Create one</a></p>
52
+ </form>
53
+ </div>
54
+ </div>
55
+ </div>
@@ -0,0 +1,47 @@
1
+ <!-- OmniaUI block: login-03 - Card on a muted page with social sign-in buttons above the e-mail form. 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">
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"><path d="m12 3 9 5-9 5-9-5z"/><path d="m3 13 9 5 9-5"/></svg></span>
21
+ <div class="oc-block-authcard-head">
22
+ <h1 class="oc-block-authcard-title">Welcome back</h1>
23
+ <p class="oc-block-authcard-text">Login with your Apple or Google account</p>
24
+ </div>
25
+ <div class="oc-block-authsocial">
26
+ <button class="oc-btn oc-btn--outline" type="button">Apple</button>
27
+ <button class="oc-btn oc-btn--outline" type="button">Google</button>
28
+ </div>
29
+ <div class="oc-separator-text">Or continue with</div>
30
+ <div class="oc-block-authcard-fields">
31
+ <div class="oc-field">
32
+ <label class="oc-field-label" for="oc-login03-email">E-mail</label>
33
+ <input class="oc-input" id="oc-login03-email" name="email" type="email" autocomplete="username" required placeholder="name@company.com">
34
+ </div>
35
+ <div class="oc-field">
36
+ <label class="oc-field-label" for="oc-login03-password">Password</label>
37
+ <div class="oc-input-reveal">
38
+ <input class="oc-input" id="oc-login03-password" name="oc-login03-password" type="password" autocomplete="current-password" required>
39
+ <button class="oc-input-reveal-button" type="button" aria-pressed="false" aria-label="Toggle password visibility">Show</button>
40
+ </div>
41
+ </div>
42
+ <button class="oc-btn oc-block-authcard-submit" type="submit">Login</button>
43
+ </div>
44
+ <p class="oc-block-authcard-foot">Don't have an account? <a href="#">Sign up</a></p>
45
+ <p class="oc-block-authcard-legal">By clicking continue, you agree to our <a href="#">Terms of Service</a> and <a href="#">Privacy Policy</a>.</p>
46
+ </form>
47
+ </div>
@@ -0,0 +1,24 @@
1
+ <!-- OmniaUI block: module-header - Page header with icon tile, title, intro, meta badges and action row. Needs @birdycom/omniaui-blocks + @birdycom/omniaui CSS.
2
+ Class API (modifiers are extra classes / attributes on the same element):
3
+ .oc-block-modulehead: Wrapper
4
+ .oc-block-modulehead-band: Tinted band with icon and text
5
+ .oc-block-modulehead-icon: Icon tile
6
+ .oc-block-modulehead-title / -intro: Title and intro
7
+ .oc-block-modulehead-meta: Row for badges under the title (optional)
8
+ .oc-block-modulehead-actions: Row for buttons below the band (optional)
9
+ Slots: icon, title, intro, meta, actions
10
+ -->
11
+ <header class="oc-block-modulehead">
12
+ <div class="oc-block-modulehead-band">
13
+ <span class="oc-block-modulehead-icon" aria-hidden="true"><svg class="" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="9" cy="8" r="4"/><path d="M2 21c0-4 3-6 7-6s7 2 7 6"/></svg></span>
14
+ <div class="oc-block-modulehead-body">
15
+ <h1 class="oc-block-modulehead-title">Contacts</h1>
16
+ <p class="oc-block-modulehead-intro">Manage customers, suppliers and the people who work there.</p>
17
+ <div class="oc-block-modulehead-meta"><span class="oc-badge oc-badge--info">Pro</span><span class="oc-badge oc-badge--success">Synced</span></div>
18
+ </div>
19
+ </div>
20
+ <div class="oc-block-modulehead-actions">
21
+ <a class="oc-back-link" href="#">Back to CRM</a>
22
+ <button class="oc-btn" type="button">New contact</button>
23
+ </div>
24
+ </header>
@@ -0,0 +1,36 @@
1
+ <!-- OmniaUI block: otp-01 - Verification card: six-digit code, verify button and a resend link. 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-authpage oc-block-authpage--plain">
20
+ <form class="oc-block-authcard" action="#" method="post">
21
+ <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"><path d="M12 3 4 6v6c0 5 3.5 8 8 9 4.5-1 8-4 8-9V6z"/></svg></span>
22
+ <div class="oc-block-authcard-head">
23
+ <h1 class="oc-block-authcard-title">Enter verification code</h1>
24
+ <p class="oc-block-authcard-text">We sent a 6-digit code to your e-mail</p>
25
+ </div>
26
+ <div class="oc-block-authcard-fields">
27
+ <div class="oc-field">
28
+ <label class="oc-field-label" for="oc-otp01-code">Verification code</label>
29
+ <input class="oc-otp" id="oc-otp01-code" name="code" type="text" inputmode="numeric" autocomplete="one-time-code" maxlength="6" pattern="[0-9]*" style="--oc-otp-length: 6">
30
+ <p class="oc-field-description">Enter the 6-digit code we sent to name@company.com.</p>
31
+ </div>
32
+ <button class="oc-btn oc-block-authcard-submit" type="submit">Verify</button>
33
+ </div>
34
+ <p class="oc-block-authcard-foot">Didn't receive the code? <a href="#">Resend</a></p>
35
+ </form>
36
+ </div>
@@ -0,0 +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>
@@ -0,0 +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>
@@ -0,0 +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>
@@ -0,0 +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>
@@ -0,0 +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>
@@ -0,0 +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>
@@ -0,0 +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>
@@ -0,0 +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>
@@ -0,0 +1,27 @@
1
+ <!-- OmniaUI block: showcase — Portfolio grid: project cards with a browser frame around the screenshot. Needs @birdycom/omniaui. -->
2
+ <section class="oc-section-pad">
3
+ <div class="oc-container">
4
+ <p class="oc-eyebrow">Work</p>
5
+ <h2 class="oc-display oc-display--md">Websites made to measure. <span class="oc-text-gradient">Different for every client.</span></h2>
6
+ <div class="oc-card-grid" style="--oc-card-min: 26rem;">
7
+ <a class="oc-product-card oc-accent--green p-0 overflow-hidden" href="#">
8
+ <span class="oc-browser-frame m-1"><span class="oc-browser-frame__bar"><i></i><i></i><i></i></span><span class="oc-browser-frame__body" style="background: linear-gradient(135deg, var(--color-green-40), var(--color-teal-80));"></span></span>
9
+ <span class="grid gap-0.5 p-1.5 pt-0">
10
+ <span class="oc-pill oc-pill--accent">Website with CMS</span>
11
+ <span class="oc-product-card__name">Verdavita</span>
12
+ <span class="oc-product-card__summary">Garden design and maintenance</span>
13
+ <span class="oc-product-card__more">View the project</span>
14
+ </span>
15
+ </a>
16
+ <a class="oc-product-card oc-accent--blue p-0 overflow-hidden" href="#">
17
+ <span class="oc-browser-frame m-1"><span class="oc-browser-frame__bar"><i></i><i></i><i></i></span><span class="oc-browser-frame__body" style="background: linear-gradient(135deg, var(--color-vividblue-60), var(--color-blue-40));"></span></span>
18
+ <span class="grid gap-0.5 p-1.5 pt-0">
19
+ <span class="oc-pill oc-pill--accent">Custom website</span>
20
+ <span class="oc-product-card__name">Kenis-Geerts</span>
21
+ <span class="oc-product-card__summary">Plumbing and central heating</span>
22
+ <span class="oc-product-card__more">View the project</span>
23
+ </span>
24
+ </a>
25
+ </div>
26
+ </div>
27
+ </section>