@birdycom/omniaui 0.11.0 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +21 -21
- package/bin/lib/add.mjs +126 -126
- package/bin/lib/catalog.mjs +169 -169
- package/bin/lib/project.mjs +90 -90
- package/bin/omniaui.mjs +69 -69
- package/dist/code-block.css +25 -25
- package/dist/components-extra.css +916 -914
- package/dist/components.css +6565 -6469
- package/dist/components.min.css +1 -1
- package/dist/data-table.d.ts +9 -9
- package/dist/data-table.js +505 -505
- package/dist/docs-ui.css +267 -265
- package/dist/oc-theme.css +69 -69
- package/dist/parts/app-accordion-accent.css +60 -60
- package/dist/parts/app-alpha-tabs.css +68 -68
- package/dist/parts/app-busy-overlay.css +25 -25
- package/dist/parts/app-column-menu.css +85 -85
- package/dist/parts/app-confirm-dialog.css +70 -70
- package/dist/parts/app-cookie-consent.css +63 -63
- package/dist/parts/app-data-table.css +174 -174
- package/dist/parts/app-greeting.css +47 -47
- package/dist/parts/app-list-toolbar.css +81 -81
- package/dist/parts/app-page-header.css +54 -54
- package/dist/parts/app-severity-card.css +91 -91
- package/dist/parts/app-sidebar-dark.css +15 -15
- package/dist/parts/app-sortable-row.css +52 -52
- package/dist/parts/app-stat-card.css +68 -68
- package/dist/parts/app-table-actions.css +71 -71
- package/dist/parts/app-table-compact.css +54 -54
- package/dist/parts/app-top-progress.css +68 -68
- package/dist/parts/app-tree.css +104 -104
- package/dist/parts/app-upgrade-banner.css +90 -90
- package/dist/parts/app-version-banner.css +80 -80
- package/dist/parts/data-chart-line.css +167 -167
- package/dist/parts/forms-affix-input.css +75 -75
- package/dist/parts/forms-barcode-input.css +75 -75
- package/dist/parts/forms-chip-filter.css +91 -91
- package/dist/parts/forms-color-select.css +97 -89
- package/dist/parts/forms-decimal-input.css +51 -51
- package/dist/parts/forms-filter-counts.css +94 -94
- package/dist/parts/forms-language-select.css +89 -76
- package/dist/parts/forms-number-input.css +98 -95
- package/dist/parts/forms-password-requirements.css +55 -55
- package/dist/parts/forms-phone-input.css +85 -85
- package/dist/parts/forms-time-input.css +74 -74
- package/dist/parts/forms-toggle-field.css +69 -69
- package/dist/parts/media-art.css +21 -21
- package/dist/parts/media-attachment.css +160 -160
- package/dist/parts/media-browser-frame.css +73 -73
- package/dist/parts/media-card.css +83 -83
- package/dist/parts/media-chat-composer.css +90 -90
- package/dist/parts/media-doc-viewer.css +151 -151
- package/dist/parts/media-emoji-picker.css +88 -88
- package/dist/parts/media-entity-card.css +52 -52
- package/dist/parts/media-flip-card.css +78 -78
- package/dist/parts/media-image-zoom.css +68 -68
- package/dist/parts/media-lightbox.css +131 -131
- package/dist/parts/media-message-thread.css +136 -136
- package/dist/parts/media-message.css +160 -160
- package/dist/parts/media-row.css +78 -78
- package/dist/parts/media-stack-card.css +82 -82
- package/dist/parts/media-terminal-log.css +76 -76
- package/dist/parts/media-thumb.css +71 -71
- package/dist/parts/site-fact-list.css +25 -25
- package/dist/parts/site-link-arrow.css +34 -34
- package/dist/parts/site-marquee.css +34 -34
- package/dist/parts/site-next-teaser.css +75 -75
- package/dist/parts/site-price-card.css +91 -75
- package/dist/parts/site-product-mark.css +66 -66
- package/dist/parts/site-project-card.css +111 -111
- package/dist/parts/site-prose.css +124 -124
- package/dist/parts/site-stack-list.css +48 -48
- package/dist/parts/site-timeline.css +54 -54
- package/dist/showcase.css +410 -404
- package/package.json +69 -69
- package/snippets/accordion-accent.html +24 -24
- package/snippets/accordion.html +11 -11
- package/snippets/affix-input.html +30 -30
- package/snippets/alert-dialog.html +22 -22
- package/snippets/alert.html +5 -5
- package/snippets/alpha-tabs.html +37 -37
- package/snippets/aspect-ratio.html +15 -15
- package/snippets/attachment.html +43 -43
- package/snippets/avatar.html +6 -6
- package/snippets/back-link.html +5 -5
- package/snippets/badge.html +5 -5
- package/snippets/barcode-input.html +18 -18
- package/snippets/breadcrumb.html +6 -6
- package/snippets/browser-frame.html +18 -18
- package/snippets/busy-overlay.html +31 -31
- package/snippets/button-group.html +21 -21
- package/snippets/button.html +8 -8
- package/snippets/calendar.html +43 -43
- package/snippets/card.html +17 -17
- package/snippets/carousel.html +21 -21
- package/snippets/chart-line.html +46 -46
- package/snippets/chart.html +27 -27
- package/snippets/chat-composer.html +21 -21
- package/snippets/checkbox.html +5 -5
- package/snippets/checklist.html +23 -23
- package/snippets/chip-filter.html +14 -14
- package/snippets/code-window.html +20 -20
- package/snippets/collapsible.html +19 -19
- package/snippets/color-field.html +13 -13
- package/snippets/color-select.html +18 -18
- package/snippets/column-menu.html +38 -38
- package/snippets/combobox.html +19 -19
- package/snippets/command.html +24 -24
- package/snippets/confirm-dialog.html +32 -32
- package/snippets/context-menu.html +25 -25
- package/snippets/cookie-consent.html +70 -70
- package/snippets/copy-field.html +19 -19
- package/snippets/counter.html +2 -2
- package/snippets/data-table.html +151 -151
- package/snippets/date-picker.html +32 -32
- package/snippets/decimal-input.html +20 -20
- package/snippets/definition-list.html +20 -20
- package/snippets/demo-panel.html +18 -18
- package/snippets/doc-viewer.html +58 -58
- package/snippets/drawer.html +30 -30
- package/snippets/dropdown-menu.html +27 -27
- package/snippets/dropdown.html +9 -9
- package/snippets/dropzone.html +13 -13
- package/snippets/emoji-picker.html +51 -51
- package/snippets/empty-state.html +17 -17
- package/snippets/entity-card.html +26 -26
- package/snippets/expandable-table.html +26 -26
- package/snippets/fact-list.html +14 -14
- package/snippets/filter-counts.html +30 -30
- package/snippets/flip-card.html +22 -22
- package/snippets/form-field.html +6 -6
- package/snippets/greeting.html +22 -22
- package/snippets/heading.html +14 -14
- package/snippets/hover-card.html +18 -18
- package/snippets/image-zoom.html +30 -30
- package/snippets/input-group.html +10 -10
- package/snippets/input.html +5 -5
- package/snippets/item.html +26 -26
- package/snippets/kbd.html +13 -13
- package/snippets/label.html +9 -9
- package/snippets/language-select.html +26 -26
- package/snippets/launcher-card.html +14 -14
- package/snippets/lightbox.html +50 -50
- package/snippets/link-arrow.html +10 -10
- package/snippets/list-toolbar.html +33 -33
- package/snippets/marquee.html +15 -15
- package/snippets/media-card.html +28 -28
- package/snippets/media-row.html +21 -21
- package/snippets/media-thumb.html +12 -12
- package/snippets/menubar.html +30 -30
- package/snippets/message-thread.html +123 -123
- package/snippets/message.html +51 -51
- package/snippets/modal.html +15 -15
- package/snippets/native-select.html +15 -15
- package/snippets/navmenu.html +23 -23
- package/snippets/next-teaser.html +15 -15
- package/snippets/number-input.html +27 -27
- package/snippets/otp-input.html +9 -9
- package/snippets/page-header.html +24 -24
- package/snippets/pagination.html +6 -6
- package/snippets/password-input.html +24 -24
- package/snippets/password-requirements.html +30 -30
- package/snippets/phone-input.html +22 -22
- package/snippets/popover.html +15 -15
- package/snippets/price-card.html +34 -34
- package/snippets/product-mark.html +13 -13
- package/snippets/progress.html +4 -4
- package/snippets/project-card.html +23 -23
- package/snippets/prose.html +54 -54
- package/snippets/radio.html +17 -17
- package/snippets/recovery-codes.html +20 -20
- package/snippets/resizable.html +16 -16
- package/snippets/scroll-area.html +20 -20
- package/snippets/search.html +8 -8
- package/snippets/segmented.html +11 -11
- package/snippets/select.html +7 -7
- package/snippets/separator.html +15 -15
- package/snippets/severity-card.html +35 -35
- package/snippets/sheet.html +32 -32
- package/snippets/sidebar-docs.html +24 -24
- package/snippets/sidebar.html +55 -55
- package/snippets/site-footer.html +6 -6
- package/snippets/site-header.html +26 -26
- package/snippets/skeleton.html +4 -4
- package/snippets/slider.html +17 -17
- package/snippets/sortable-row.html +31 -31
- package/snippets/spinner.html +14 -14
- package/snippets/stack-card.html +17 -17
- package/snippets/stack-list.html +16 -16
- package/snippets/stat-card.html +24 -24
- package/snippets/stepper.html +13 -13
- package/snippets/switch.html +6 -6
- package/snippets/table-actions.html +39 -39
- package/snippets/table-compact.html +24 -24
- package/snippets/table.html +29 -29
- package/snippets/tabs.html +9 -9
- package/snippets/tag-input.html +60 -17
- package/snippets/terminal-log.html +23 -23
- package/snippets/textarea.html +3 -3
- package/snippets/theme-switch.html +6 -6
- package/snippets/time-input.html +26 -26
- package/snippets/timeline.html +28 -28
- package/snippets/toast-stack.html +10 -10
- package/snippets/toast.html +36 -36
- package/snippets/toc.html +13 -13
- package/snippets/toggle-field.html +20 -20
- package/snippets/toggle.html +22 -22
- package/snippets/tooltip.html +4 -4
- package/snippets/top-progress.html +12 -12
- package/snippets/tree.html +38 -38
- package/snippets/upgrade-banner.html +28 -28
- package/snippets/user.html +15 -15
- package/snippets/version-banner.html +15 -15
package/snippets/sidebar.html
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
<!-- OmniaUI component: sidebar - Vertical navigation: header, groups, menu items, badges, nested menu, footer, icon-only mode. Needs @birdycom/omniaui CSS.
|
|
2
|
-
Class API (modifiers are extra classes / attributes on the same element):
|
|
3
|
-
.oc-sidebar: Root (aside/nav). Modifiers: --collapsed (icon only), --right, --floating. Width via --oc-sidebar-width / --oc-sidebar-width-icon.
|
|
4
|
-
.oc-sidebar-header / -footer: Fixed top / bottom area (logo, workspace switcher / user)
|
|
5
|
-
.oc-sidebar-content: Scrolling middle area
|
|
6
|
-
.oc-sidebar-group: Group of items; optional .oc-sidebar-group-label heading
|
|
7
|
-
.oc-sidebar-separator: Divider line
|
|
8
|
-
.oc-sidebar-menu: ul of items
|
|
9
|
-
.oc-sidebar-menu-button: Link or button of an item. State: aria-current="page" or .is-active; aria-disabled="true". Modifier: --lg.
|
|
10
|
-
.oc-sidebar-menu-icon: 16px icon (inline SVG)
|
|
11
|
-
.oc-sidebar-menu-label: Label (hidden when collapsed)
|
|
12
|
-
.oc-sidebar-menu-badge: Count pill on the right
|
|
13
|
-
.oc-sidebar-menu-sub: Nested ul with a guide line
|
|
14
|
-
details.oc-sidebar-collapsible: Expandable item: <summary class="oc-sidebar-menu-button"> + .oc-sidebar-menu-sub
|
|
15
|
-
Slots: header, group label, menu items (default), nested items (.oc-sidebar-menu-sub), footer
|
|
16
|
-
-->
|
|
17
|
-
<aside class="oc-sidebar " aria-label="Main navigation">
|
|
18
|
-
<div class="oc-sidebar-header">
|
|
19
|
-
<a class="oc-sidebar-menu-button oc-sidebar-menu-button--lg" href="#">
|
|
20
|
-
<svg class="oc-sidebar-menu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 11l9-8 9 8v10a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z"/></svg>
|
|
21
|
-
<span class="oc-sidebar-menu-label"><strong>OmniaDesk</strong></span>
|
|
22
|
-
</a>
|
|
23
|
-
</div>
|
|
24
|
-
<div class="oc-sidebar-content">
|
|
25
|
-
<div class="oc-sidebar-group">
|
|
26
|
-
<div class="oc-sidebar-group-label">Platform</div>
|
|
27
|
-
<ul class="oc-sidebar-menu">
|
|
28
|
-
<li><a class="oc-sidebar-menu-button" href="#" aria-current="page"><svg class="oc-sidebar-menu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 11l9-8 9 8v10a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z"/></svg><span class="oc-sidebar-menu-label">Dashboard</span></a></li>
|
|
29
|
-
<li><a class="oc-sidebar-menu-button" href="#"><svg class="oc-sidebar-menu-icon" 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 class="oc-sidebar-menu-label">Contacts</span><span class="oc-sidebar-menu-badge">12</span></a></li>
|
|
30
|
-
<li>
|
|
31
|
-
<details class="oc-sidebar-collapsible" open>
|
|
32
|
-
<summary class="oc-sidebar-menu-button"><svg class="oc-sidebar-menu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 2h8l5 5v15H6z"/><path d="M14 2v5h5"/></svg><span class="oc-sidebar-menu-label">Invoices</span></summary>
|
|
33
|
-
<ul class="oc-sidebar-menu-sub">
|
|
34
|
-
<li><a class="oc-sidebar-menu-button" href="#">Sales</a></li>
|
|
35
|
-
<li><a class="oc-sidebar-menu-button" href="#">Purchases</a></li>
|
|
36
|
-
</ul>
|
|
37
|
-
</details>
|
|
38
|
-
</li>
|
|
39
|
-
<li><a class="oc-sidebar-menu-button" href="#"><svg class="oc-sidebar-menu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 20V10M10 20V4M16 20v-8M22 20H2"/></svg><span class="oc-sidebar-menu-label">Reports</span></a></li>
|
|
40
|
-
</ul>
|
|
41
|
-
</div>
|
|
42
|
-
<div class="oc-sidebar-separator"></div>
|
|
43
|
-
<div class="oc-sidebar-group">
|
|
44
|
-
<ul class="oc-sidebar-menu">
|
|
45
|
-
<li><a class="oc-sidebar-menu-button" href="#"><svg class="oc-sidebar-menu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="3"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M5 5l2 2M17 17l2 2M19 5l-2 2M7 17l-2 2"/></svg><span class="oc-sidebar-menu-label">Settings</span></a></li>
|
|
46
|
-
</ul>
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
<div class="oc-sidebar-footer">
|
|
50
|
-
<div class="oc-user">
|
|
51
|
-
<span class="oc-avatar oc-avatar--sm">SC</span>
|
|
52
|
-
<span class="oc-user-text"><span class="oc-user-name">Serge Cools</span><span class="oc-user-email">serge@example.com</span></span>
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
</aside>
|
|
1
|
+
<!-- OmniaUI component: sidebar - Vertical navigation: header, groups, menu items, badges, nested menu, footer, icon-only mode. Needs @birdycom/omniaui CSS.
|
|
2
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
3
|
+
.oc-sidebar: Root (aside/nav). Modifiers: --collapsed (icon only), --right, --floating. Width via --oc-sidebar-width / --oc-sidebar-width-icon.
|
|
4
|
+
.oc-sidebar-header / -footer: Fixed top / bottom area (logo, workspace switcher / user)
|
|
5
|
+
.oc-sidebar-content: Scrolling middle area
|
|
6
|
+
.oc-sidebar-group: Group of items; optional .oc-sidebar-group-label heading
|
|
7
|
+
.oc-sidebar-separator: Divider line
|
|
8
|
+
.oc-sidebar-menu: ul of items
|
|
9
|
+
.oc-sidebar-menu-button: Link or button of an item. State: aria-current="page" or .is-active; aria-disabled="true". Modifier: --lg.
|
|
10
|
+
.oc-sidebar-menu-icon: 16px icon (inline SVG)
|
|
11
|
+
.oc-sidebar-menu-label: Label (hidden when collapsed)
|
|
12
|
+
.oc-sidebar-menu-badge: Count pill on the right
|
|
13
|
+
.oc-sidebar-menu-sub: Nested ul with a guide line
|
|
14
|
+
details.oc-sidebar-collapsible: Expandable item: <summary class="oc-sidebar-menu-button"> + .oc-sidebar-menu-sub
|
|
15
|
+
Slots: header, group label, menu items (default), nested items (.oc-sidebar-menu-sub), footer
|
|
16
|
+
-->
|
|
17
|
+
<aside class="oc-sidebar " aria-label="Main navigation">
|
|
18
|
+
<div class="oc-sidebar-header">
|
|
19
|
+
<a class="oc-sidebar-menu-button oc-sidebar-menu-button--lg" href="#">
|
|
20
|
+
<svg class="oc-sidebar-menu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 11l9-8 9 8v10a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z"/></svg>
|
|
21
|
+
<span class="oc-sidebar-menu-label"><strong>OmniaDesk</strong></span>
|
|
22
|
+
</a>
|
|
23
|
+
</div>
|
|
24
|
+
<div class="oc-sidebar-content">
|
|
25
|
+
<div class="oc-sidebar-group">
|
|
26
|
+
<div class="oc-sidebar-group-label">Platform</div>
|
|
27
|
+
<ul class="oc-sidebar-menu">
|
|
28
|
+
<li><a class="oc-sidebar-menu-button" href="#" aria-current="page"><svg class="oc-sidebar-menu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 11l9-8 9 8v10a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z"/></svg><span class="oc-sidebar-menu-label">Dashboard</span></a></li>
|
|
29
|
+
<li><a class="oc-sidebar-menu-button" href="#"><svg class="oc-sidebar-menu-icon" 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 class="oc-sidebar-menu-label">Contacts</span><span class="oc-sidebar-menu-badge">12</span></a></li>
|
|
30
|
+
<li>
|
|
31
|
+
<details class="oc-sidebar-collapsible" open>
|
|
32
|
+
<summary class="oc-sidebar-menu-button"><svg class="oc-sidebar-menu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 2h8l5 5v15H6z"/><path d="M14 2v5h5"/></svg><span class="oc-sidebar-menu-label">Invoices</span></summary>
|
|
33
|
+
<ul class="oc-sidebar-menu-sub">
|
|
34
|
+
<li><a class="oc-sidebar-menu-button" href="#">Sales</a></li>
|
|
35
|
+
<li><a class="oc-sidebar-menu-button" href="#">Purchases</a></li>
|
|
36
|
+
</ul>
|
|
37
|
+
</details>
|
|
38
|
+
</li>
|
|
39
|
+
<li><a class="oc-sidebar-menu-button" href="#"><svg class="oc-sidebar-menu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 20V10M10 20V4M16 20v-8M22 20H2"/></svg><span class="oc-sidebar-menu-label">Reports</span></a></li>
|
|
40
|
+
</ul>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="oc-sidebar-separator"></div>
|
|
43
|
+
<div class="oc-sidebar-group">
|
|
44
|
+
<ul class="oc-sidebar-menu">
|
|
45
|
+
<li><a class="oc-sidebar-menu-button" href="#"><svg class="oc-sidebar-menu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="3"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M5 5l2 2M17 17l2 2M19 5l-2 2M7 17l-2 2"/></svg><span class="oc-sidebar-menu-label">Settings</span></a></li>
|
|
46
|
+
</ul>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="oc-sidebar-footer">
|
|
50
|
+
<div class="oc-user">
|
|
51
|
+
<span class="oc-avatar oc-avatar--sm">SC</span>
|
|
52
|
+
<span class="oc-user-text"><span class="oc-user-name">Serge Cools</span><span class="oc-user-email">serge@example.com</span></span>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</aside>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<!-- OmniaUI component: site-footer - Slim footer bar. Needs @birdycom/omniaui CSS.
|
|
2
|
-
Class API: .oc-footerbar (footer; --fixed pins it to the bottom of the viewport). Links inside use the primary color. Tokens: --ocm-footer-height, --ocm-footer-bg
|
|
3
|
-
-->
|
|
4
|
-
<footer class="oc-footerbar">
|
|
5
|
-
OmniaCSS v1 — modern CSS, utilities, components and blocks · <a href="#">Docs</a> · <a href="#">GitHub</a>
|
|
6
|
-
</footer>
|
|
1
|
+
<!-- OmniaUI component: site-footer - Slim footer bar. Needs @birdycom/omniaui CSS.
|
|
2
|
+
Class API: .oc-footerbar (footer; --fixed pins it to the bottom of the viewport). Links inside use the primary color. Tokens: --ocm-footer-height, --ocm-footer-bg
|
|
3
|
+
-->
|
|
4
|
+
<footer class="oc-footerbar">
|
|
5
|
+
OmniaCSS v1 — modern CSS, utilities, components and blocks · <a href="#">Docs</a> · <a href="#">GitHub</a>
|
|
6
|
+
</footer>
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
<!-- OmniaUI component: site-header - Top bar with brand, site navigation (pill menu) and actions. Needs @birdycom/omniaui CSS.
|
|
2
|
-
Class API: .oc-topbar (header; --fixed pins it to the top, --collapsible = CSS-only burger menu on small screens) · .oc-topbar-brand ·
|
|
3
|
-
.oc-topbar-nav (nav wrapper) · .oc-navmenu.oc-navmenu--site + .oc-navmenu-link (aria-current="page" = current section) · .oc-navmenu-icon (icon link) ·
|
|
4
|
-
.oc-topbar-actions (right side) · .oc-topbar-toggle + .oc-topbar-burger (mobile menu)
|
|
5
|
-
-->
|
|
6
|
-
<header class="oc-topbar oc-topbar--collapsible">
|
|
7
|
-
<a class="oc-topbar-brand" href="#">OmniaCSS <span class="oc-badge-version">v1</span></a>
|
|
8
|
-
<input type="checkbox" id="oc-topbar-demo" class="oc-topbar-toggle" aria-label="Toggle menu">
|
|
9
|
-
<label class="oc-topbar-burger" for="oc-topbar-demo" aria-hidden="true">☰</label>
|
|
10
|
-
<nav class="oc-topbar-nav" aria-label="Main">
|
|
11
|
-
<ul class="oc-navmenu oc-navmenu--site">
|
|
12
|
-
<li><a class="oc-navmenu-link" href="#">Home</a></li>
|
|
13
|
-
<li><a class="oc-navmenu-link" href="#" aria-current="page">Docs</a></li>
|
|
14
|
-
<li><a class="oc-navmenu-link" href="#">Components</a></li>
|
|
15
|
-
<li><a class="oc-navmenu-link" href="#">Blocks</a></li>
|
|
16
|
-
<li><a class="oc-navmenu-link" href="#" aria-label="GitHub"><svg class="oc-navmenu-icon" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z"/></svg></a></li>
|
|
17
|
-
</ul>
|
|
18
|
-
</nav>
|
|
19
|
-
<div class="oc-topbar-actions">
|
|
20
|
-
<fieldset class="oc-theme-switch" aria-label="Color theme">
|
|
21
|
-
<label><input type="radio" name="oc-topbar-theme" value="system" checked> System</label>
|
|
22
|
-
<label><input type="radio" name="oc-topbar-theme" value="light"> Light</label>
|
|
23
|
-
<label><input type="radio" name="oc-topbar-theme" value="dark"> Dark</label>
|
|
24
|
-
</fieldset>
|
|
25
|
-
</div>
|
|
26
|
-
</header>
|
|
1
|
+
<!-- OmniaUI component: site-header - Top bar with brand, site navigation (pill menu) and actions. Needs @birdycom/omniaui CSS.
|
|
2
|
+
Class API: .oc-topbar (header; --fixed pins it to the top, --collapsible = CSS-only burger menu on small screens) · .oc-topbar-brand ·
|
|
3
|
+
.oc-topbar-nav (nav wrapper) · .oc-navmenu.oc-navmenu--site + .oc-navmenu-link (aria-current="page" = current section) · .oc-navmenu-icon (icon link) ·
|
|
4
|
+
.oc-topbar-actions (right side) · .oc-topbar-toggle + .oc-topbar-burger (mobile menu)
|
|
5
|
+
-->
|
|
6
|
+
<header class="oc-topbar oc-topbar--collapsible">
|
|
7
|
+
<a class="oc-topbar-brand" href="#">OmniaCSS <span class="oc-badge-version">v1</span></a>
|
|
8
|
+
<input type="checkbox" id="oc-topbar-demo" class="oc-topbar-toggle" aria-label="Toggle menu">
|
|
9
|
+
<label class="oc-topbar-burger" for="oc-topbar-demo" aria-hidden="true">☰</label>
|
|
10
|
+
<nav class="oc-topbar-nav" aria-label="Main">
|
|
11
|
+
<ul class="oc-navmenu oc-navmenu--site">
|
|
12
|
+
<li><a class="oc-navmenu-link" href="#">Home</a></li>
|
|
13
|
+
<li><a class="oc-navmenu-link" href="#" aria-current="page">Docs</a></li>
|
|
14
|
+
<li><a class="oc-navmenu-link" href="#">Components</a></li>
|
|
15
|
+
<li><a class="oc-navmenu-link" href="#">Blocks</a></li>
|
|
16
|
+
<li><a class="oc-navmenu-link" href="#" aria-label="GitHub"><svg class="oc-navmenu-icon" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z"/></svg></a></li>
|
|
17
|
+
</ul>
|
|
18
|
+
</nav>
|
|
19
|
+
<div class="oc-topbar-actions">
|
|
20
|
+
<fieldset class="oc-theme-switch" aria-label="Color theme">
|
|
21
|
+
<label><input type="radio" name="oc-topbar-theme" value="system" checked> System</label>
|
|
22
|
+
<label><input type="radio" name="oc-topbar-theme" value="light"> Light</label>
|
|
23
|
+
<label><input type="radio" name="oc-topbar-theme" value="dark"> Dark</label>
|
|
24
|
+
</fieldset>
|
|
25
|
+
</div>
|
|
26
|
+
</header>
|
package/snippets/skeleton.html
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- OmniaUI component: skeleton — Loading skeleton. Needs @birdycom/omniaui CSS. -->
|
|
2
|
-
<div class="oc-skeleton oc-skeleton--circle"></div>
|
|
3
|
-
<div class="oc-skeleton oc-skeleton--title"></div>
|
|
4
|
-
<div class="oc-skeleton oc-skeleton--text"></div>
|
|
1
|
+
<!-- OmniaUI component: skeleton — Loading skeleton. Needs @birdycom/omniaui CSS. -->
|
|
2
|
+
<div class="oc-skeleton oc-skeleton--circle"></div>
|
|
3
|
+
<div class="oc-skeleton oc-skeleton--title"></div>
|
|
4
|
+
<div class="oc-skeleton oc-skeleton--text"></div>
|
package/snippets/slider.html
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
<!-- OmniaUI component: slider - Slider: native range input with themed track, fill and thumb. Needs @birdycom/omniaui CSS.
|
|
2
|
-
Class API (modifiers are extra classes / attributes on the same element):
|
|
3
|
-
input.oc-slider[type=range]: the slider. Modifier: --vertical
|
|
4
|
-
--oc-slider-progress: fill length for Chromium/WebKit (Firefox fills natively). Update with a one-line oninput
|
|
5
|
-
--oc-slider-track / --oc-slider-thumb: sizes
|
|
6
|
-
-->
|
|
7
|
-
<div class="oc-field" style="max-inline-size:20rem">
|
|
8
|
-
<label class="oc-field-label" for="oc-slider-volume">Volume</label>
|
|
9
|
-
<input class="oc-slider" id="oc-slider-volume" type="range" min="0" max="100" value="40" style="--oc-slider-progress: 40%"
|
|
10
|
-
oninput="this.style.setProperty('--oc-slider-progress', (this.value - this.min) / (this.max - this.min) * 100 + '%')">
|
|
11
|
-
</div>
|
|
12
|
-
|
|
13
|
-
<div style="display:flex;align-items:center;gap:2rem;flex-wrap:wrap">
|
|
14
|
-
<input class="oc-slider" type="range" min="0" max="10" step="1" value="3" aria-label="Rating" style="--oc-slider-progress: 30%;max-inline-size:12rem" oninput="this.style.setProperty('--oc-slider-progress', (this.value - this.min) / (this.max - this.min) * 100 + '%')">
|
|
15
|
-
<input class="oc-slider" type="range" value="60" disabled aria-label="Disabled" style="--oc-slider-progress: 60%;max-inline-size:10rem">
|
|
16
|
-
<input class="oc-slider oc-slider--vertical" type="range" value="70" aria-label="Level" style="--oc-slider-progress: 70%">
|
|
17
|
-
</div>
|
|
1
|
+
<!-- OmniaUI component: slider - Slider: native range input with themed track, fill and thumb. Needs @birdycom/omniaui CSS.
|
|
2
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
3
|
+
input.oc-slider[type=range]: the slider. Modifier: --vertical
|
|
4
|
+
--oc-slider-progress: fill length for Chromium/WebKit (Firefox fills natively). Update with a one-line oninput
|
|
5
|
+
--oc-slider-track / --oc-slider-thumb: sizes
|
|
6
|
+
-->
|
|
7
|
+
<div class="oc-field" style="max-inline-size:20rem">
|
|
8
|
+
<label class="oc-field-label" for="oc-slider-volume">Volume</label>
|
|
9
|
+
<input class="oc-slider" id="oc-slider-volume" type="range" min="0" max="100" value="40" style="--oc-slider-progress: 40%"
|
|
10
|
+
oninput="this.style.setProperty('--oc-slider-progress', (this.value - this.min) / (this.max - this.min) * 100 + '%')">
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<div style="display:flex;align-items:center;gap:2rem;flex-wrap:wrap">
|
|
14
|
+
<input class="oc-slider" type="range" min="0" max="10" step="1" value="3" aria-label="Rating" style="--oc-slider-progress: 30%;max-inline-size:12rem" oninput="this.style.setProperty('--oc-slider-progress', (this.value - this.min) / (this.max - this.min) * 100 + '%')">
|
|
15
|
+
<input class="oc-slider" type="range" value="60" disabled aria-label="Disabled" style="--oc-slider-progress: 60%;max-inline-size:10rem">
|
|
16
|
+
<input class="oc-slider oc-slider--vertical" type="range" value="70" aria-label="Level" style="--oc-slider-progress: 70%">
|
|
17
|
+
</div>
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
<!-- OmniaUI component: sortable-row - Table row with a drag grip and drag / drop states (styling only). Needs @birdycom/omniaui CSS.
|
|
2
|
-
File: packages/ui/snippets/sortable-row.html | Map: table -> grip column -> normal row -> dragging row -> drop target row
|
|
3
|
-
Class API (modifiers are extra classes / attributes on the same element):
|
|
4
|
-
tr.oc-sortable-row[draggable="true"]: Row that can be moved. States: .is-dragging (row being moved), .is-drop-before / .is-drop-after (drop line on the target row).
|
|
5
|
-
td.oc-sortable-row-grip-cell: Narrow first cell
|
|
6
|
-
button.oc-sortable-row-grip: Grip with six dots (aria-label "Move ..."). States: aria-pressed="true" (picked up with the keyboard), disabled (locked row).
|
|
7
|
-
Slots: grip cell + the normal row cells. Behaviour (native drag and drop or keys) comes from your own code.
|
|
8
|
-
-->
|
|
9
|
-
<div class="oc-table-wrap">
|
|
10
|
-
<table class="oc-table">
|
|
11
|
-
<thead><tr><th class="oc-sortable-row-grip-cell"><span class="oc-visually-hidden">Order</span></th><th>Step</th><th>Owner</th></tr></thead>
|
|
12
|
-
<tbody>
|
|
13
|
-
<tr class="oc-sortable-row" draggable="true">
|
|
14
|
-
<td class="oc-sortable-row-grip-cell"><button class="oc-sortable-row-grip" type="button" aria-label="Move Measure the room"></button></td>
|
|
15
|
-
<td>Measure the room</td><td>Ada</td>
|
|
16
|
-
</tr>
|
|
17
|
-
<tr class="oc-sortable-row is-dragging" draggable="true">
|
|
18
|
-
<td class="oc-sortable-row-grip-cell"><button class="oc-sortable-row-grip" type="button" aria-label="Move Order materials"></button></td>
|
|
19
|
-
<td>Order materials</td><td>Alan</td>
|
|
20
|
-
</tr>
|
|
21
|
-
<tr class="oc-sortable-row is-drop-after" draggable="true">
|
|
22
|
-
<td class="oc-sortable-row-grip-cell"><button class="oc-sortable-row-grip" type="button" aria-label="Move Install"></button></td>
|
|
23
|
-
<td>Install</td><td>Grace</td>
|
|
24
|
-
</tr>
|
|
25
|
-
<tr class="oc-sortable-row">
|
|
26
|
-
<td class="oc-sortable-row-grip-cell"><button class="oc-sortable-row-grip" type="button" aria-label="Final check (locked)" disabled></button></td>
|
|
27
|
-
<td>Final check</td><td>Ada</td>
|
|
28
|
-
</tr>
|
|
29
|
-
</tbody>
|
|
30
|
-
</table>
|
|
31
|
-
</div>
|
|
1
|
+
<!-- OmniaUI component: sortable-row - Table row with a drag grip and drag / drop states (styling only). Needs @birdycom/omniaui CSS.
|
|
2
|
+
File: packages/ui/snippets/sortable-row.html | Map: table -> grip column -> normal row -> dragging row -> drop target row
|
|
3
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
4
|
+
tr.oc-sortable-row[draggable="true"]: Row that can be moved. States: .is-dragging (row being moved), .is-drop-before / .is-drop-after (drop line on the target row).
|
|
5
|
+
td.oc-sortable-row-grip-cell: Narrow first cell
|
|
6
|
+
button.oc-sortable-row-grip: Grip with six dots (aria-label "Move ..."). States: aria-pressed="true" (picked up with the keyboard), disabled (locked row).
|
|
7
|
+
Slots: grip cell + the normal row cells. Behaviour (native drag and drop or keys) comes from your own code.
|
|
8
|
+
-->
|
|
9
|
+
<div class="oc-table-wrap">
|
|
10
|
+
<table class="oc-table">
|
|
11
|
+
<thead><tr><th class="oc-sortable-row-grip-cell"><span class="oc-visually-hidden">Order</span></th><th>Step</th><th>Owner</th></tr></thead>
|
|
12
|
+
<tbody>
|
|
13
|
+
<tr class="oc-sortable-row" draggable="true">
|
|
14
|
+
<td class="oc-sortable-row-grip-cell"><button class="oc-sortable-row-grip" type="button" aria-label="Move Measure the room"></button></td>
|
|
15
|
+
<td>Measure the room</td><td>Ada</td>
|
|
16
|
+
</tr>
|
|
17
|
+
<tr class="oc-sortable-row is-dragging" draggable="true">
|
|
18
|
+
<td class="oc-sortable-row-grip-cell"><button class="oc-sortable-row-grip" type="button" aria-label="Move Order materials"></button></td>
|
|
19
|
+
<td>Order materials</td><td>Alan</td>
|
|
20
|
+
</tr>
|
|
21
|
+
<tr class="oc-sortable-row is-drop-after" draggable="true">
|
|
22
|
+
<td class="oc-sortable-row-grip-cell"><button class="oc-sortable-row-grip" type="button" aria-label="Move Install"></button></td>
|
|
23
|
+
<td>Install</td><td>Grace</td>
|
|
24
|
+
</tr>
|
|
25
|
+
<tr class="oc-sortable-row">
|
|
26
|
+
<td class="oc-sortable-row-grip-cell"><button class="oc-sortable-row-grip" type="button" aria-label="Final check (locked)" disabled></button></td>
|
|
27
|
+
<td>Final check</td><td>Ada</td>
|
|
28
|
+
</tr>
|
|
29
|
+
</tbody>
|
|
30
|
+
</table>
|
|
31
|
+
</div>
|
package/snippets/spinner.html
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
<!-- OmniaUI component: spinner - Spinner: loading ring in sizes sm to xl, inherits currentColor. Needs @birdycom/omniaui CSS.
|
|
2
|
-
Class API (modifiers are extra classes / attributes on the same element):
|
|
3
|
-
.oc-spinner: the ring (role="status" + aria-label). Sizes: --sm, --lg, --xl. Colors: --primary, --muted (or set `color`)
|
|
4
|
-
--oc-spinner-size: custom size
|
|
5
|
-
-->
|
|
6
|
-
<div style="display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap">
|
|
7
|
-
<span class="oc-spinner oc-spinner--sm" role="status" aria-label="Loading"></span>
|
|
8
|
-
<span class="oc-spinner" role="status" aria-label="Loading"></span>
|
|
9
|
-
<span class="oc-spinner oc-spinner--lg oc-spinner--primary" role="status" aria-label="Loading"></span>
|
|
10
|
-
<span class="oc-spinner oc-spinner--xl oc-spinner--muted" role="status" aria-label="Loading"></span>
|
|
11
|
-
</div>
|
|
12
|
-
|
|
13
|
-
<button class="oc-btn" type="button" disabled aria-busy="true"><span class="oc-spinner oc-spinner--sm" aria-hidden="true"></span> Saving…</button>
|
|
14
|
-
<button class="oc-btn oc-btn--outline" type="button" disabled aria-busy="true"><span class="oc-spinner oc-spinner--sm" aria-hidden="true"></span> Loading</button>
|
|
1
|
+
<!-- OmniaUI component: spinner - Spinner: loading ring in sizes sm to xl, inherits currentColor. Needs @birdycom/omniaui CSS.
|
|
2
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
3
|
+
.oc-spinner: the ring (role="status" + aria-label). Sizes: --sm, --lg, --xl. Colors: --primary, --muted (or set `color`)
|
|
4
|
+
--oc-spinner-size: custom size
|
|
5
|
+
-->
|
|
6
|
+
<div style="display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap">
|
|
7
|
+
<span class="oc-spinner oc-spinner--sm" role="status" aria-label="Loading"></span>
|
|
8
|
+
<span class="oc-spinner" role="status" aria-label="Loading"></span>
|
|
9
|
+
<span class="oc-spinner oc-spinner--lg oc-spinner--primary" role="status" aria-label="Loading"></span>
|
|
10
|
+
<span class="oc-spinner oc-spinner--xl oc-spinner--muted" role="status" aria-label="Loading"></span>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<button class="oc-btn" type="button" disabled aria-busy="true"><span class="oc-spinner oc-spinner--sm" aria-hidden="true"></span> Saving…</button>
|
|
14
|
+
<button class="oc-btn oc-btn--outline" type="button" disabled aria-busy="true"><span class="oc-spinner oc-spinner--sm" aria-hidden="true"></span> Loading</button>
|
package/snippets/stack-card.html
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
<!-- OmniaUI component: stack-card — Playlist or course cover drawn as a stacked deck with a count badge. Needs @birdycom/omniaui CSS.
|
|
2
|
-
File: packages/ui/snippets/stack-card.html | Map: card -> deck (cover thumb + count badge) -> title link + meta
|
|
3
|
-
Class API: article.oc-stack-card > .oc-stack-card__deck > .oc-media-thumb (cover) + .oc-stack-card__count ·
|
|
4
|
-
h3.oc-stack-card__title > a (covers the card) · p.oc-stack-card__meta.
|
|
5
|
-
Modifiers: .oc-stack-card--panel (count as a dark side panel). The two layers behind the cover are ::before / ::after
|
|
6
|
-
and fan out on hover (skipped with reduced motion). No JavaScript.
|
|
7
|
-
-->
|
|
8
|
-
<article class="oc-stack-card" style="max-inline-size:20rem">
|
|
9
|
-
<div class="oc-stack-card__deck">
|
|
10
|
-
<div class="oc-media-thumb"><div class="oc-media-art oc-media-art--4"></div></div>
|
|
11
|
-
<span class="oc-stack-card__count"><span aria-hidden="true">☰</span> 12 videos</span>
|
|
12
|
-
</div>
|
|
13
|
-
<div>
|
|
14
|
-
<h3 class="oc-stack-card__title"><a href="#">Cabin build, start to finish</a></h3>
|
|
15
|
-
<p class="oc-stack-card__meta">North Studio · Updated yesterday</p>
|
|
16
|
-
</div>
|
|
17
|
-
</article>
|
|
1
|
+
<!-- OmniaUI component: stack-card — Playlist or course cover drawn as a stacked deck with a count badge. Needs @birdycom/omniaui CSS.
|
|
2
|
+
File: packages/ui/snippets/stack-card.html | Map: card -> deck (cover thumb + count badge) -> title link + meta
|
|
3
|
+
Class API: article.oc-stack-card > .oc-stack-card__deck > .oc-media-thumb (cover) + .oc-stack-card__count ·
|
|
4
|
+
h3.oc-stack-card__title > a (covers the card) · p.oc-stack-card__meta.
|
|
5
|
+
Modifiers: .oc-stack-card--panel (count as a dark side panel). The two layers behind the cover are ::before / ::after
|
|
6
|
+
and fan out on hover (skipped with reduced motion). No JavaScript.
|
|
7
|
+
-->
|
|
8
|
+
<article class="oc-stack-card" style="max-inline-size:20rem">
|
|
9
|
+
<div class="oc-stack-card__deck">
|
|
10
|
+
<div class="oc-media-thumb"><div class="oc-media-art oc-media-art--4"></div></div>
|
|
11
|
+
<span class="oc-stack-card__count"><span aria-hidden="true">☰</span> 12 videos</span>
|
|
12
|
+
</div>
|
|
13
|
+
<div>
|
|
14
|
+
<h3 class="oc-stack-card__title"><a href="#">Cabin build, start to finish</a></h3>
|
|
15
|
+
<p class="oc-stack-card__meta">North Studio · Updated yesterday</p>
|
|
16
|
+
</div>
|
|
17
|
+
</article>
|
package/snippets/stack-list.html
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
<!-- OmniaUI component: stack-list - Technology pills for a product or project tech stack. Needs @birdycom/omniaui CSS.
|
|
2
|
-
File: packages/ui/snippets/stack-list.html | Map: ul.oc-stack-list -> li.oc-stack-list__item (optional __icon)
|
|
3
|
-
Class API (modifiers are extra classes / attributes on the same element):
|
|
4
|
-
.oc-stack-list: The list (aria-label names it). Modifiers: --neutral (no accent tint), --sm
|
|
5
|
-
.oc-stack-list__item: One pill
|
|
6
|
-
.oc-stack-list__icon: Optional glyph or SVG before the name (aria-hidden)
|
|
7
|
-
.oc-accent--*: Accent preset for the tint
|
|
8
|
-
Slots: items
|
|
9
|
-
-->
|
|
10
|
-
<ul class="oc-stack-list oc-accent--violet" aria-label="Tech stack">
|
|
11
|
-
<li class="oc-stack-list__item">PHP 8.4</li>
|
|
12
|
-
<li class="oc-stack-list__item">MySQL</li>
|
|
13
|
-
<li class="oc-stack-list__item">TypeScript</li>
|
|
14
|
-
<li class="oc-stack-list__item">Vue 3</li>
|
|
15
|
-
<li class="oc-stack-list__item">Docker</li>
|
|
16
|
-
</ul>
|
|
1
|
+
<!-- OmniaUI component: stack-list - Technology pills for a product or project tech stack. Needs @birdycom/omniaui CSS.
|
|
2
|
+
File: packages/ui/snippets/stack-list.html | Map: ul.oc-stack-list -> li.oc-stack-list__item (optional __icon)
|
|
3
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
4
|
+
.oc-stack-list: The list (aria-label names it). Modifiers: --neutral (no accent tint), --sm
|
|
5
|
+
.oc-stack-list__item: One pill
|
|
6
|
+
.oc-stack-list__icon: Optional glyph or SVG before the name (aria-hidden)
|
|
7
|
+
.oc-accent--*: Accent preset for the tint
|
|
8
|
+
Slots: items
|
|
9
|
+
-->
|
|
10
|
+
<ul class="oc-stack-list oc-accent--violet" aria-label="Tech stack">
|
|
11
|
+
<li class="oc-stack-list__item">PHP 8.4</li>
|
|
12
|
+
<li class="oc-stack-list__item">MySQL</li>
|
|
13
|
+
<li class="oc-stack-list__item">TypeScript</li>
|
|
14
|
+
<li class="oc-stack-list__item">Vue 3</li>
|
|
15
|
+
<li class="oc-stack-list__item">Docker</li>
|
|
16
|
+
</ul>
|
package/snippets/stat-card.html
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
<!-- OmniaUI component: stat-card - KPI tile with an icon tile, a big number, a label and an optional trend; tone modifiers and a clickable variant. Needs @birdycom/omniaui CSS.
|
|
2
|
-
File: packages/ui/snippets/stat-card.html | Map: grid -> default card -> card with trend -> clickable accent card
|
|
3
|
-
Class API (modifiers are extra classes / attributes on the same element):
|
|
4
|
-
.oc-stat-card-grid: Responsive grid for a row of cards
|
|
5
|
-
.oc-stat-card: Card (div, or a / button for a clickable card with hover lift). Modifiers: --accent (needs attention), --success, --warning, --stripe (start edge stripe).
|
|
6
|
-
.oc-stat-card-icon: Tinted icon tile
|
|
7
|
-
.oc-stat-card-body / -value / -label: Text column, big number, small label
|
|
8
|
-
.oc-stat-card-trend: Chip after the value. Modifiers: --up, --down.
|
|
9
|
-
Slots: icon, value, label, trend
|
|
10
|
-
-->
|
|
11
|
-
<div class="oc-stat-card-grid">
|
|
12
|
-
<div class="oc-stat-card">
|
|
13
|
-
<span class="oc-stat-card-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-stat-card-body"><span class="oc-stat-card-value">248</span><span class="oc-stat-card-label">Active customers</span></div>
|
|
15
|
-
</div>
|
|
16
|
-
<div class="oc-stat-card oc-stat-card--success">
|
|
17
|
-
<span class="oc-stat-card-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"><path d="M3 17l6-6 4 4 8-8"/><path d="M14 7h7v7"/></svg></span>
|
|
18
|
-
<div class="oc-stat-card-body"><span class="oc-stat-card-value">€18.4k<span class="oc-stat-card-trend oc-stat-card-trend--up">+12%</span></span><span class="oc-stat-card-label">Revenue this month</span></div>
|
|
19
|
-
</div>
|
|
20
|
-
<a class="oc-stat-card oc-stat-card--accent oc-stat-card--stripe" href="#">
|
|
21
|
-
<span class="oc-stat-card-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"><path d="M21 8l-9-5-9 5 9 5 9-5z"/><path d="M3 8v8l9 5 9-5V8"/></svg></span>
|
|
22
|
-
<span class="oc-stat-card-body"><span class="oc-stat-card-value">7</span><span class="oc-stat-card-label">Open orders - needs attention</span></span>
|
|
23
|
-
</a>
|
|
24
|
-
</div>
|
|
1
|
+
<!-- OmniaUI component: stat-card - KPI tile with an icon tile, a big number, a label and an optional trend; tone modifiers and a clickable variant. Needs @birdycom/omniaui CSS.
|
|
2
|
+
File: packages/ui/snippets/stat-card.html | Map: grid -> default card -> card with trend -> clickable accent card
|
|
3
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
4
|
+
.oc-stat-card-grid: Responsive grid for a row of cards
|
|
5
|
+
.oc-stat-card: Card (div, or a / button for a clickable card with hover lift). Modifiers: --accent (needs attention), --success, --warning, --stripe (start edge stripe).
|
|
6
|
+
.oc-stat-card-icon: Tinted icon tile
|
|
7
|
+
.oc-stat-card-body / -value / -label: Text column, big number, small label
|
|
8
|
+
.oc-stat-card-trend: Chip after the value. Modifiers: --up, --down.
|
|
9
|
+
Slots: icon, value, label, trend
|
|
10
|
+
-->
|
|
11
|
+
<div class="oc-stat-card-grid">
|
|
12
|
+
<div class="oc-stat-card">
|
|
13
|
+
<span class="oc-stat-card-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-stat-card-body"><span class="oc-stat-card-value">248</span><span class="oc-stat-card-label">Active customers</span></div>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="oc-stat-card oc-stat-card--success">
|
|
17
|
+
<span class="oc-stat-card-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"><path d="M3 17l6-6 4 4 8-8"/><path d="M14 7h7v7"/></svg></span>
|
|
18
|
+
<div class="oc-stat-card-body"><span class="oc-stat-card-value">€18.4k<span class="oc-stat-card-trend oc-stat-card-trend--up">+12%</span></span><span class="oc-stat-card-label">Revenue this month</span></div>
|
|
19
|
+
</div>
|
|
20
|
+
<a class="oc-stat-card oc-stat-card--accent oc-stat-card--stripe" href="#">
|
|
21
|
+
<span class="oc-stat-card-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"><path d="M21 8l-9-5-9 5 9 5 9-5z"/><path d="M3 8v8l9 5 9-5V8"/></svg></span>
|
|
22
|
+
<span class="oc-stat-card-body"><span class="oc-stat-card-value">7</span><span class="oc-stat-card-label">Open orders - needs attention</span></span>
|
|
23
|
+
</a>
|
|
24
|
+
</div>
|
package/snippets/stepper.html
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
<!-- OmniaUI component: stepper - Wizard step navigation: done, active and upcoming steps (vertical or horizontal). Needs @birdycom/omniaui CSS.
|
|
2
|
-
Class API (modifiers are extra classes / attributes on the same element):
|
|
3
|
-
.oc-stepper: ol wrapper. Modifier: --horizontal.
|
|
4
|
-
.oc-stepper-item: Step (button). Modifiers: --done, --active (or aria-current="step"); default = upcoming (add disabled).
|
|
5
|
-
.oc-stepper-label: Step title
|
|
6
|
-
.oc-stepper-meta: Optional small text (e.g. 2/4)
|
|
7
|
-
-->
|
|
8
|
-
<ol class="oc-stepper" aria-label="Setup steps">
|
|
9
|
-
<li><button class="oc-stepper-item oc-stepper-item--done" type="button"><span><span class="oc-stepper-label">Company</span><span class="oc-stepper-meta">1/4</span></span></button></li>
|
|
10
|
-
<li><button class="oc-stepper-item oc-stepper-item--active" type="button" aria-current="step"><span><span class="oc-stepper-label">Invoicing</span><span class="oc-stepper-meta">2/4</span></span></button></li>
|
|
11
|
-
<li><button class="oc-stepper-item" type="button" disabled><span><span class="oc-stepper-label">Banking</span><span class="oc-stepper-meta">3/4</span></span></button></li>
|
|
12
|
-
<li><button class="oc-stepper-item" type="button" disabled><span><span class="oc-stepper-label">Team</span><span class="oc-stepper-meta">4/4</span></span></button></li>
|
|
13
|
-
</ol>
|
|
1
|
+
<!-- OmniaUI component: stepper - Wizard step navigation: done, active and upcoming steps (vertical or horizontal). Needs @birdycom/omniaui CSS.
|
|
2
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
3
|
+
.oc-stepper: ol wrapper. Modifier: --horizontal.
|
|
4
|
+
.oc-stepper-item: Step (button). Modifiers: --done, --active (or aria-current="step"); default = upcoming (add disabled).
|
|
5
|
+
.oc-stepper-label: Step title
|
|
6
|
+
.oc-stepper-meta: Optional small text (e.g. 2/4)
|
|
7
|
+
-->
|
|
8
|
+
<ol class="oc-stepper" aria-label="Setup steps">
|
|
9
|
+
<li><button class="oc-stepper-item oc-stepper-item--done" type="button"><span><span class="oc-stepper-label">Company</span><span class="oc-stepper-meta">1/4</span></span></button></li>
|
|
10
|
+
<li><button class="oc-stepper-item oc-stepper-item--active" type="button" aria-current="step"><span><span class="oc-stepper-label">Invoicing</span><span class="oc-stepper-meta">2/4</span></span></button></li>
|
|
11
|
+
<li><button class="oc-stepper-item" type="button" disabled><span><span class="oc-stepper-label">Banking</span><span class="oc-stepper-meta">3/4</span></span></button></li>
|
|
12
|
+
<li><button class="oc-stepper-item" type="button" disabled><span><span class="oc-stepper-label">Team</span><span class="oc-stepper-meta">4/4</span></span></button></li>
|
|
13
|
+
</ol>
|
package/snippets/switch.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<!-- OmniaUI component: switch - Toggle switch on a checkbox. Needs @birdycom/omniaui CSS.
|
|
2
|
-
-->
|
|
3
|
-
<label class="oc-switch">
|
|
4
|
-
<input type="checkbox" role="switch" checked>
|
|
5
|
-
<span class="oc-switch-track"></span>
|
|
6
|
-
</label>
|
|
1
|
+
<!-- OmniaUI component: switch - Toggle switch on a checkbox. Needs @birdycom/omniaui CSS.
|
|
2
|
+
-->
|
|
3
|
+
<label class="oc-switch">
|
|
4
|
+
<input type="checkbox" role="switch" checked>
|
|
5
|
+
<span class="oc-switch-track"></span>
|
|
6
|
+
</label>
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
<!-- OmniaUI component: table-actions - Row actions as small icon buttons or as one overflow menu (popover) - no JavaScript. Needs @birdycom/omniaui CSS.
|
|
2
|
-
File: packages/ui/snippets/table-actions.html | Map: table -> row with icon actions -> row with overflow menu
|
|
3
|
-
Class API (modifiers are extra classes / attributes on the same element):
|
|
4
|
-
td.oc-table-actions: Actions cell from the table component (right aligned, no wrap). Modifier: --icons (tighter gap).
|
|
5
|
-
.oc-table-actions-icon: Square icon action (a or button) with aria-label + title. Tones: --primary, --success, --destructive. State: disabled / aria-disabled="true".
|
|
6
|
-
.oc-table-actions-more[popovertarget]: Overflow trigger (three dots). Stays highlighted while its menu is open.
|
|
7
|
-
.oc-dropdown-menu[popover]: The overflow menu (dropdown component); opens toward the inline start.
|
|
8
|
-
Slots: icon actions, or trigger + menu items (.oc-dropdown-item, --destructive, .oc-dropdown-separator)
|
|
9
|
-
-->
|
|
10
|
-
<div class="oc-table-wrap">
|
|
11
|
-
<table class="oc-table">
|
|
12
|
-
<thead>
|
|
13
|
-
<tr><th>Name</th><th>E-mail</th><th style="width:7rem"><span class="oc-visually-hidden">Actions</span></th></tr>
|
|
14
|
-
</thead>
|
|
15
|
-
<tbody>
|
|
16
|
-
<tr>
|
|
17
|
-
<td>Ada Lovelace</td><td>ada@example.com</td>
|
|
18
|
-
<td class="oc-table-actions oc-table-actions--icons">
|
|
19
|
-
<a class="oc-table-actions-icon oc-table-actions-icon--primary" href="#" aria-label="View Ada" title="View"><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="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/></svg></a>
|
|
20
|
-
<a class="oc-table-actions-icon" href="#" aria-label="Edit Ada" title="Edit"><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 20h9"/><path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z"/></svg></a>
|
|
21
|
-
<button class="oc-table-actions-icon oc-table-actions-icon--destructive" type="button" aria-label="Delete Ada" title="Delete"><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="M3 6h18"/><path d="M8 6V4h8v2"/><path d="M19 6l-1 14H6L5 6"/></svg></button>
|
|
22
|
-
</td>
|
|
23
|
-
</tr>
|
|
24
|
-
<tr>
|
|
25
|
-
<td>Alan Turing</td><td>alan@example.com</td>
|
|
26
|
-
<td class="oc-table-actions">
|
|
27
|
-
<button class="oc-table-actions-more" type="button" popovertarget="oc-table-actions-menu-alan" aria-label="Actions for Alan"></button>
|
|
28
|
-
<div class="oc-dropdown-menu" id="oc-table-actions-menu-alan" popover>
|
|
29
|
-
<a class="oc-dropdown-item" href="#">View</a>
|
|
30
|
-
<a class="oc-dropdown-item" href="#">Edit</a>
|
|
31
|
-
<button class="oc-dropdown-item" type="button">Duplicate</button>
|
|
32
|
-
<div class="oc-dropdown-separator"></div>
|
|
33
|
-
<button class="oc-dropdown-item oc-dropdown-item--destructive" type="button">Delete</button>
|
|
34
|
-
</div>
|
|
35
|
-
</td>
|
|
36
|
-
</tr>
|
|
37
|
-
</tbody>
|
|
38
|
-
</table>
|
|
39
|
-
</div>
|
|
1
|
+
<!-- OmniaUI component: table-actions - Row actions as small icon buttons or as one overflow menu (popover) - no JavaScript. Needs @birdycom/omniaui CSS.
|
|
2
|
+
File: packages/ui/snippets/table-actions.html | Map: table -> row with icon actions -> row with overflow menu
|
|
3
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
4
|
+
td.oc-table-actions: Actions cell from the table component (right aligned, no wrap). Modifier: --icons (tighter gap).
|
|
5
|
+
.oc-table-actions-icon: Square icon action (a or button) with aria-label + title. Tones: --primary, --success, --destructive. State: disabled / aria-disabled="true".
|
|
6
|
+
.oc-table-actions-more[popovertarget]: Overflow trigger (three dots). Stays highlighted while its menu is open.
|
|
7
|
+
.oc-dropdown-menu[popover]: The overflow menu (dropdown component); opens toward the inline start.
|
|
8
|
+
Slots: icon actions, or trigger + menu items (.oc-dropdown-item, --destructive, .oc-dropdown-separator)
|
|
9
|
+
-->
|
|
10
|
+
<div class="oc-table-wrap">
|
|
11
|
+
<table class="oc-table">
|
|
12
|
+
<thead>
|
|
13
|
+
<tr><th>Name</th><th>E-mail</th><th style="width:7rem"><span class="oc-visually-hidden">Actions</span></th></tr>
|
|
14
|
+
</thead>
|
|
15
|
+
<tbody>
|
|
16
|
+
<tr>
|
|
17
|
+
<td>Ada Lovelace</td><td>ada@example.com</td>
|
|
18
|
+
<td class="oc-table-actions oc-table-actions--icons">
|
|
19
|
+
<a class="oc-table-actions-icon oc-table-actions-icon--primary" href="#" aria-label="View Ada" title="View"><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="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/></svg></a>
|
|
20
|
+
<a class="oc-table-actions-icon" href="#" aria-label="Edit Ada" title="Edit"><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 20h9"/><path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z"/></svg></a>
|
|
21
|
+
<button class="oc-table-actions-icon oc-table-actions-icon--destructive" type="button" aria-label="Delete Ada" title="Delete"><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="M3 6h18"/><path d="M8 6V4h8v2"/><path d="M19 6l-1 14H6L5 6"/></svg></button>
|
|
22
|
+
</td>
|
|
23
|
+
</tr>
|
|
24
|
+
<tr>
|
|
25
|
+
<td>Alan Turing</td><td>alan@example.com</td>
|
|
26
|
+
<td class="oc-table-actions">
|
|
27
|
+
<button class="oc-table-actions-more" type="button" popovertarget="oc-table-actions-menu-alan" aria-label="Actions for Alan"></button>
|
|
28
|
+
<div class="oc-dropdown-menu" id="oc-table-actions-menu-alan" popover>
|
|
29
|
+
<a class="oc-dropdown-item" href="#">View</a>
|
|
30
|
+
<a class="oc-dropdown-item" href="#">Edit</a>
|
|
31
|
+
<button class="oc-dropdown-item" type="button">Duplicate</button>
|
|
32
|
+
<div class="oc-dropdown-separator"></div>
|
|
33
|
+
<button class="oc-dropdown-item oc-dropdown-item--destructive" type="button">Delete</button>
|
|
34
|
+
</div>
|
|
35
|
+
</td>
|
|
36
|
+
</tr>
|
|
37
|
+
</tbody>
|
|
38
|
+
</table>
|
|
39
|
+
</div>
|