@nxgt/material 3.8.1 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.md +28 -4
- package/dist/background-CAWV_qSk.js +247 -0
- package/dist/backgrounds/backgrounds.css +4 -0
- package/dist/backgrounds/css-react/celestial.css +200 -0
- package/dist/backgrounds/css-react/icons.css +175 -0
- package/dist/backgrounds.js +1 -1
- package/dist/celestial-scene-DaOsRFF3.js +30 -0
- package/dist/components/components.css +2 -5
- package/dist/components/ui/feedback/feedback.css +7 -0
- package/dist/components/ui/feedback/state-frame/illustration.css +171 -0
- package/dist/{components-DNUYg8QM.js → components-DiaPdu-E.js} +35 -28
- package/dist/components.js +16 -15
- package/dist/editor.js +1 -1
- package/dist/empty-state-COAV2d-R.js +98 -0
- package/dist/hooks.js +1 -1
- package/dist/icon-sprites-CZ3vcD7P.js +17 -0
- package/dist/icons-scene-bA7I4wdP.js +24 -0
- package/dist/illustration-DfPJtkFY.js +86 -0
- package/dist/illustrations-education.js +2 -0
- package/dist/illustrations-health.js +2 -0
- package/dist/illustrations.js +4 -0
- package/dist/lib/backgrounds/background/available.d.ts +8 -3
- package/dist/lib/backgrounds/background/background.d.ts +4 -4
- package/dist/lib/backgrounds/background/partials/background-layers.d.ts +17 -6
- package/dist/lib/backgrounds/background/partials/celestial-scene.d.ts +22 -0
- package/dist/lib/backgrounds/background/partials/icons-check.d.ts +8 -0
- package/dist/lib/backgrounds/background/partials/icons-keys.d.ts +3 -0
- package/dist/lib/backgrounds/background/partials/icons-layer.d.ts +8 -0
- package/dist/lib/backgrounds/background/partials/icons-scene.d.ts +19 -0
- package/dist/lib/backgrounds/background/partials/scene-options.d.ts +23 -0
- package/dist/lib/backgrounds/background/partials/use-icons-scene.d.ts +22 -0
- package/dist/lib/backgrounds/background/types.d.ts +28 -2
- package/dist/lib/backgrounds/index.d.ts +1 -1
- package/dist/lib/components/ui/collections/data-table/empty-types.d.ts +20 -0
- package/dist/lib/components/ui/collections/data-table/layout-types.d.ts +12 -0
- package/dist/lib/components/ui/collections/data-table/partials/data-table-body.d.ts +3 -1
- package/dist/lib/components/ui/collections/data-table/partials/data-table-empty-row.d.ts +5 -2
- package/dist/lib/components/ui/collections/data-table/partials/layouts/data-table-items-empty.d.ts +2 -2
- package/dist/lib/components/ui/collections/data-table/types.d.ts +4 -26
- package/dist/lib/components/ui/feedback/empty-state/empty-state.d.ts +8 -3
- package/dist/lib/components/ui/feedback/error-state/error-state.d.ts +3 -3
- package/dist/lib/components/ui/feedback/state-frame/illustration-defaults.d.ts +46 -0
- package/dist/lib/components/ui/feedback/state-frame/scene-registry.d.ts +14 -0
- package/dist/lib/components/ui/feedback/state-frame/state-frame.d.ts +10 -2
- package/dist/lib/components/ui/feedback/state-frame/state-scene-illustration.d.ts +5 -0
- package/dist/lib/components/ui/feedback/state-frame/state-scenes.d.ts +15 -0
- package/dist/lib/components/ui/layout/app-shell/use-keep-shapes-inside.d.ts +3 -0
- package/dist/lib/components/ui/primitives/icon/icon-sprites.d.ts +17 -0
- package/dist/lib/components/ui/primitives/icon/index.d.ts +1 -0
- package/dist/lib/illustrations/illustration.d.ts +38 -0
- package/dist/lib/illustrations/index.d.ts +11 -0
- package/dist/lib/illustrations/plated-illustration.d.ts +11 -0
- package/dist/lib/illustrations/use-illustration.d.ts +22 -0
- package/dist/lib/illustrations-education/index.d.ts +16 -0
- package/dist/lib/illustrations-health/index.d.ts +16 -0
- package/dist/lib/theme-picker/partials/mini-background.d.ts +3 -0
- package/dist/lib/theme-picker/partials/tile-icons.d.ts +9 -0
- package/dist/main.js +28 -27
- package/dist/material.css +1 -1
- package/dist/{nxgt-theme-CgSb9Obl.js → nxgt-theme-ZS945iMP.js} +1 -1
- package/dist/pdf-reader.js +1 -1
- package/dist/plated-illustration-C3z0hP9U.js +19 -0
- package/dist/{public-Ce30uvp0.js → public-DGvtAz7M.js} +1 -1
- package/dist/scene-options-CCy3V7XS.js +60 -0
- package/dist/scene-svg-DJKa5vsg.js +9 -0
- package/dist/state-scenes-Be9w_3an.js +130 -0
- package/dist/{theme-context-BagPvRcz.js → theme-context-Cofk6vgs.js} +2 -2
- package/dist/theme-picker.js +69 -45
- package/dist/{theme-toggle-C8os82b4.js → theme-toggle-oU-fh6WE.js} +2 -2
- package/dist/themes.js +2 -2
- package/dist/{use-chat-composer-CDrgWGMM.js → use-chat-composer-CkEPJo5I.js} +4236 -4230
- package/dist/{use-theme-Cd-aiDJo.js → use-theme-DMcyJ52N.js} +1 -1
- package/docs/README.md +2 -0
- package/docs/components/README.md +2 -0
- package/docs/components/data-table-filter-and-lists.md +1 -0
- package/docs/components/feedback-and-status.md +2 -2
- package/docs/components/foundations.md +2 -2
- package/docs/components/navigation-and-layout.md +1 -1
- package/docs/components/primitives.md +14 -1
- package/docs/getting-started.md +7 -2
- package/docs/guides/app-shell.md +1 -1
- package/docs/guides/backgrounds.md +93 -6
- package/docs/guides/icon-motifs.md +198 -0
- package/docs/guides/illustrations.md +172 -0
- package/docs/guides/themes.md +35 -0
- package/docs/guides/theming.md +1 -1
- package/docs/previews/backgrounds-background-from-theme.webp +0 -0
- package/docs/previews/backgrounds-celestial.webp +0 -0
- package/docs/previews/backgrounds-geometry-more.webp +0 -0
- package/docs/previews/backgrounds-geometry.webp +0 -0
- package/docs/previews/backgrounds-icons.webp +0 -0
- package/docs/previews/backgrounds-illustrated-scenes.webp +0 -0
- package/docs/previews/backgrounds-light-more.webp +0 -0
- package/docs/previews/backgrounds-light.webp +0 -0
- package/docs/previews/backgrounds-material-more.webp +0 -0
- package/docs/previews/backgrounds-matrix.webp +0 -0
- package/docs/previews/backgrounds-moon.webp +0 -0
- package/docs/previews/backgrounds-motif-shapes.webp +0 -0
- package/docs/previews/backgrounds-motifs.webp +0 -0
- package/docs/previews/backgrounds-sky-overlay.webp +0 -0
- package/docs/previews/buttons-actions-actioncard.webp +0 -0
- package/docs/previews/buttons-actions-button.webp +0 -0
- package/docs/previews/buttons-actions-buttongroup.webp +0 -0
- package/docs/previews/buttons-actions-copybutton.webp +0 -0
- package/docs/previews/buttons-actions-fab.webp +0 -0
- package/docs/previews/buttons-actions-fabmenu.webp +0 -0
- package/docs/previews/buttons-actions-highlighttext.webp +0 -0
- package/docs/previews/buttons-actions-iconbutton.webp +0 -0
- package/docs/previews/buttons-actions-languageswitcher.webp +0 -0
- package/docs/previews/buttons-actions-linkbutton.webp +0 -0
- package/docs/previews/buttons-actions-loadmorebutton.webp +0 -0
- package/docs/previews/buttons-actions-responsivebutton.webp +0 -0
- package/docs/previews/buttons-actions-scrolltolatestbutton.webp +0 -0
- package/docs/previews/buttons-actions-scrolltotop.webp +0 -0
- package/docs/previews/buttons-actions-splitbutton.webp +0 -0
- package/docs/previews/buttons-actions-themetoggle.webp +0 -0
- package/docs/previews/buttons-actions-toolbar-overflow.webp +0 -0
- package/docs/previews/buttons-actions-toolbar.webp +0 -0
- package/docs/previews/data-display-accordioncard.webp +0 -0
- package/docs/previews/data-display-apiendpoint.webp +0 -0
- package/docs/previews/data-display-apioperation.webp +0 -0
- package/docs/previews/data-display-avatar.webp +0 -0
- package/docs/previews/data-display-avatargroup.webp +0 -0
- package/docs/previews/data-display-badge.webp +0 -0
- package/docs/previews/data-display-barecode.webp +0 -0
- package/docs/previews/data-display-card-presets.webp +0 -0
- package/docs/previews/data-display-chip.webp +0 -0
- package/docs/previews/data-display-codeblock.webp +0 -0
- package/docs/previews/data-display-codegroup.webp +0 -0
- package/docs/previews/data-display-countbadge.webp +0 -0
- package/docs/previews/data-display-dayseparator.webp +0 -0
- package/docs/previews/data-display-description.webp +0 -0
- package/docs/previews/data-display-enrolmentsecret.webp +0 -0
- package/docs/previews/data-display-entityheader.webp +0 -0
- package/docs/previews/data-display-eventchip.webp +0 -0
- package/docs/previews/data-display-figure.webp +0 -0
- package/docs/previews/data-display-jsonviewer.webp +0 -0
- package/docs/previews/data-display-listtile.webp +0 -0
- package/docs/previews/data-display-markdown.webp +0 -0
- package/docs/previews/data-display-metric-cards.webp +0 -0
- package/docs/previews/data-display-paramtable.webp +0 -0
- package/docs/previews/data-display-periodcards.webp +0 -0
- package/docs/previews/data-display-recoverycodes.webp +0 -0
- package/docs/previews/data-display-shape.webp +0 -0
- package/docs/previews/data-display-statcard.webp +0 -0
- package/docs/previews/data-display-statusindicator.webp +0 -0
- package/docs/previews/data-display-summarydata.webp +0 -0
- package/docs/previews/data-display-terminal.webp +0 -0
- package/docs/previews/data-display-timeline.webp +0 -0
- package/docs/previews/data-table-filter-lists-datagrid.webp +0 -0
- package/docs/previews/data-table-filter-lists-datatable.webp +0 -0
- package/docs/previews/data-table-filter-lists-daygroupedlist.webp +0 -0
- package/docs/previews/data-table-filter-lists-drag-and-drop.webp +0 -0
- package/docs/previews/data-table-filter-lists-facetgroup.webp +0 -0
- package/docs/previews/data-table-filter-lists-filter.webp +0 -0
- package/docs/previews/data-table-filter-lists-listempty.webp +0 -0
- package/docs/previews/data-table-filter-lists-listpane.webp +0 -0
- package/docs/previews/data-table-filter-lists-pagination.webp +0 -0
- package/docs/previews/data-table-filter-lists-servertable.webp +0 -0
- package/docs/previews/data-table-filter-lists-tree.webp +0 -0
- package/docs/previews/date-time-calendar.webp +0 -0
- package/docs/previews/date-time-datefield.webp +0 -0
- package/docs/previews/date-time-daterangefield.webp +0 -0
- package/docs/previews/date-time-durationfield.webp +0 -0
- package/docs/previews/date-time-minimonth.webp +0 -0
- package/docs/previews/date-time-nowindicator.webp +0 -0
- package/docs/previews/date-time-timefield.webp +0 -0
- package/docs/previews/date-time-timepicker.webp +0 -0
- package/docs/previews/feedback-status-alert.webp +0 -0
- package/docs/previews/feedback-status-alertdialog.webp +0 -0
- package/docs/previews/feedback-status-banner.webp +0 -0
- package/docs/previews/feedback-status-circularprogress.webp +0 -0
- package/docs/previews/feedback-status-confirmationdialog.webp +0 -0
- package/docs/previews/feedback-status-confirmdialog.webp +0 -0
- package/docs/previews/feedback-status-countdowntimer.webp +0 -0
- package/docs/previews/feedback-status-customalertdialog.webp +0 -0
- package/docs/previews/feedback-status-customdialog.webp +0 -0
- package/docs/previews/feedback-status-emptystate.webp +0 -0
- package/docs/previews/feedback-status-errorstate.webp +0 -0
- package/docs/previews/feedback-status-hydrateloading.webp +0 -0
- package/docs/previews/feedback-status-illustration-education.webp +0 -0
- package/docs/previews/feedback-status-illustration-health.webp +0 -0
- package/docs/previews/feedback-status-illustration.webp +0 -0
- package/docs/previews/feedback-status-loadingindicator.webp +0 -0
- package/docs/previews/feedback-status-notificationrow.webp +0 -0
- package/docs/previews/feedback-status-notifications.webp +0 -0
- package/docs/previews/feedback-status-progress.webp +0 -0
- package/docs/previews/feedback-status-scrollprogress.webp +0 -0
- package/docs/previews/feedback-status-skeleton.webp +0 -0
- package/docs/previews/feedback-status-spinner.webp +0 -0
- package/docs/previews/feedback-status-stepdots.webp +0 -0
- package/docs/previews/feedback-status-toast.webp +0 -0
- package/docs/previews/feedback-status-typingindicator.webp +0 -0
- package/docs/previews/form-fields-attributes.webp +0 -0
- package/docs/previews/form-fields-colorfield.webp +0 -0
- package/docs/previews/form-fields-contacts.webp +0 -0
- package/docs/previews/form-fields-countryfield.webp +0 -0
- package/docs/previews/form-fields-currencyfield.webp +0 -0
- package/docs/previews/form-fields-emailfield.webp +0 -0
- package/docs/previews/form-fields-field.webp +0 -0
- package/docs/previews/form-fields-formsection.webp +0 -0
- package/docs/previews/form-fields-inlineedit.webp +0 -0
- package/docs/previews/form-fields-inputgroupfield.webp +0 -0
- package/docs/previews/form-fields-localizedtextfields.webp +0 -0
- package/docs/previews/form-fields-numberfield.webp +0 -0
- package/docs/previews/form-fields-openinghours.webp +0 -0
- package/docs/previews/form-fields-otpfield.webp +0 -0
- package/docs/previews/form-fields-passwordfield.webp +0 -0
- package/docs/previews/form-fields-percentfield.webp +0 -0
- package/docs/previews/form-fields-phonefield.webp +0 -0
- package/docs/previews/form-fields-postaladdress.webp +0 -0
- package/docs/previews/form-fields-ratingfield.webp +0 -0
- package/docs/previews/form-fields-repeatablegroup.webp +0 -0
- package/docs/previews/form-fields-searchfield.webp +0 -0
- package/docs/previews/form-fields-slider.webp +0 -0
- package/docs/previews/form-fields-switch.webp +0 -0
- package/docs/previews/form-fields-textareafield.webp +0 -0
- package/docs/previews/form-fields-textfield.webp +0 -0
- package/docs/previews/form-fields-timezonefield.webp +0 -0
- package/docs/previews/form-fields-urlfield.webp +0 -0
- package/docs/previews/foundations-themes-icon-motifs.webp +0 -0
- package/docs/previews/foundations-themes-themepicker.webp +0 -0
- package/docs/previews/guides-i18n-i18nprovider.webp +0 -0
- package/docs/previews/guides-i18n-translated-components.webp +0 -0
- package/docs/previews/media-files-audioplayer.webp +0 -0
- package/docs/previews/media-files-camera.webp +0 -0
- package/docs/previews/media-files-carousel.webp +0 -0
- package/docs/previews/media-files-filelist.webp +0 -0
- package/docs/previews/media-files-filelistfield.webp +0 -0
- package/docs/previews/media-files-filepreview.webp +0 -0
- package/docs/previews/media-files-gallery-image-lists.webp +0 -0
- package/docs/previews/media-files-gallery-viewer.webp +0 -0
- package/docs/previews/media-files-gallery.webp +0 -0
- package/docs/previews/media-files-imagecropper.webp +0 -0
- package/docs/previews/media-files-imageeditor.webp +0 -0
- package/docs/previews/media-files-imagefield.webp +0 -0
- package/docs/previews/media-files-lightboxgallery.webp +0 -0
- package/docs/previews/media-files-map.webp +0 -0
- package/docs/previews/media-files-mediaplayer.webp +0 -0
- package/docs/previews/media-files-mediaplayerhost.webp +0 -0
- package/docs/previews/media-files-mediaplayerlightbox.webp +0 -0
- package/docs/previews/media-files-mediaplayermini.webp +0 -0
- package/docs/previews/media-files-minigallery.webp +0 -0
- package/docs/previews/media-files-networkuploadfield.webp +0 -0
- package/docs/previews/media-files-pdfreader.webp +0 -0
- package/docs/previews/media-files-s3uploadfield.webp +0 -0
- package/docs/previews/media-files-uploadfield.webp +0 -0
- package/docs/previews/navigation-layout-accountmenu.webp +0 -0
- package/docs/previews/navigation-layout-appshell-menu-badge.webp +0 -0
- package/docs/previews/navigation-layout-appshell.webp +0 -0
- package/docs/previews/navigation-layout-authcard.webp +0 -0
- package/docs/previews/navigation-layout-background.webp +0 -0
- package/docs/previews/navigation-layout-bottomappbar.webp +0 -0
- package/docs/previews/navigation-layout-breadcrumb.webp +0 -0
- package/docs/previews/navigation-layout-doc-api.webp +0 -0
- package/docs/previews/navigation-layout-doc-blocks.webp +0 -0
- package/docs/previews/navigation-layout-doc.webp +0 -0
- package/docs/previews/navigation-layout-hero.webp +0 -0
- package/docs/previews/navigation-layout-listdetailslayout.webp +0 -0
- package/docs/previews/navigation-layout-pager.webp +0 -0
- package/docs/previews/navigation-layout-panelayout.webp +0 -0
- package/docs/previews/navigation-layout-resizable.webp +0 -0
- package/docs/previews/navigation-layout-responsivegrid.webp +0 -0
- package/docs/previews/navigation-layout-seealso.webp +0 -0
- package/docs/previews/navigation-layout-sidebar.webp +0 -0
- package/docs/previews/navigation-layout-skiplink.webp +0 -0
- package/docs/previews/navigation-layout-stepper.webp +0 -0
- package/docs/previews/navigation-layout-steps.webp +0 -0
- package/docs/previews/navigation-layout-threadlayout.webp +0 -0
- package/docs/previews/navigation-layout-toc.webp +0 -0
- package/docs/previews/navigation-layout-topappbar.webp +0 -0
- package/docs/previews/overlays-menus-command.webp +0 -0
- package/docs/previews/overlays-menus-contextmenu.webp +0 -0
- package/docs/previews/overlays-menus-dialog.webp +0 -0
- package/docs/previews/overlays-menus-drawer.webp +0 -0
- package/docs/previews/overlays-menus-dropdownmenu.webp +0 -0
- package/docs/previews/overlays-menus-hovercard.webp +0 -0
- package/docs/previews/overlays-menus-menubar.webp +0 -0
- package/docs/previews/overlays-menus-popover.webp +0 -0
- package/docs/previews/overlays-menus-sheet.webp +0 -0
- package/docs/previews/overlays-menus-tooltip.webp +0 -0
- package/docs/previews/primitives-accordion.webp +0 -0
- package/docs/previews/primitives-anchorheading.webp +0 -0
- package/docs/previews/primitives-card.webp +0 -0
- package/docs/previews/primitives-collapsible.webp +0 -0
- package/docs/previews/primitives-extendedlabel.webp +0 -0
- package/docs/previews/primitives-helpertext.webp +0 -0
- package/docs/previews/primitives-icon.webp +0 -0
- package/docs/previews/primitives-input.webp +0 -0
- package/docs/previews/primitives-inputgroup.webp +0 -0
- package/docs/previews/primitives-kbd.webp +0 -0
- package/docs/previews/primitives-label.webp +0 -0
- package/docs/previews/primitives-scrollarea.webp +0 -0
- package/docs/previews/primitives-separator.webp +0 -0
- package/docs/previews/primitives-table.webp +0 -0
- package/docs/previews/primitives-tabs.webp +0 -0
- package/docs/previews/primitives-textarea.webp +0 -0
- package/docs/previews/primitives-toggle.webp +0 -0
- package/docs/previews/primitives-togglegroup.webp +0 -0
- package/docs/previews/primitives-typography.webp +0 -0
- package/docs/previews/rich-widgets-chat-advanced.webp +0 -0
- package/docs/previews/rich-widgets-chat-composer.webp +0 -0
- package/docs/previews/rich-widgets-chat-inbox.webp +0 -0
- package/docs/previews/rich-widgets-chat-overview.webp +0 -0
- package/docs/previews/rich-widgets-chat-thread.webp +0 -0
- package/docs/previews/rich-widgets-chat-widget.webp +0 -0
- package/docs/previews/rich-widgets-codeeditor-diff.webp +0 -0
- package/docs/previews/rich-widgets-codeeditor.webp +0 -0
- package/docs/previews/rich-widgets-compacteditor.webp +0 -0
- package/docs/previews/rich-widgets-documenteditor.webp +0 -0
- package/docs/previews/rich-widgets-drawing.webp +0 -0
- package/docs/previews/rich-widgets-emojipicker.webp +0 -0
- package/docs/previews/rich-widgets-eventcalendar.webp +0 -0
- package/docs/previews/rich-widgets-kanban.webp +0 -0
- package/docs/previews/rich-widgets-mentionlist.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-areachart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-barchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-combochart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-donutchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-funnelchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-gauge.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-heatmapchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-linechart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-piechart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-radarchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-radialbarchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-scatterchart.webp +0 -0
- package/docs/previews/rich-widgets-questioncard.webp +0 -0
- package/docs/previews/rich-widgets-quiz.webp +0 -0
- package/docs/previews/rich-widgets-richchatcomposer.webp +0 -0
- package/docs/previews/rich-widgets-richtexteditor.webp +0 -0
- package/docs/previews/rich-widgets-richtextviewer.webp +0 -0
- package/docs/previews/selection-choice-autocomplete.webp +0 -0
- package/docs/previews/selection-choice-checkbox.webp +0 -0
- package/docs/previews/selection-choice-checkboxgroup.webp +0 -0
- package/docs/previews/selection-choice-checkcardfield.webp +0 -0
- package/docs/previews/selection-choice-chipgroupfield.webp +0 -0
- package/docs/previews/selection-choice-choicecardgroup.webp +0 -0
- package/docs/previews/selection-choice-colorswatches.webp +0 -0
- package/docs/previews/selection-choice-combobox.webp +0 -0
- package/docs/previews/selection-choice-comboboxfield.webp +0 -0
- package/docs/previews/selection-choice-optiontile.webp +0 -0
- package/docs/previews/selection-choice-radiogroup.webp +0 -0
- package/docs/previews/selection-choice-select.webp +0 -0
- package/docs/previews/selection-choice-selectfield.webp +0 -0
- package/docs/previews/selection-choice-sortablelist.webp +0 -0
- package/docs/previews/selection-choice-switcher.webp +0 -0
- package/docs/previews/selection-choice-transferlist.webp +0 -0
- package/docs/previews/selection-choice-treeselectfield.webp +0 -0
- package/docs/roadmap.md +22 -0
- package/docs/troubleshooting.md +69 -4
- package/lib/backgrounds/backgrounds.css +4 -0
- package/lib/backgrounds/css-react/celestial.css +200 -0
- package/lib/backgrounds/css-react/icons.css +175 -0
- package/lib/components/components.css +2 -5
- package/lib/components/ui/feedback/feedback.css +7 -0
- package/lib/components/ui/feedback/state-frame/illustration.css +171 -0
- package/lib/theme-picker/theme-picker.css +1 -0
- package/lib/theme-picker/theme-tile-icons.css +50 -0
- package/lib/theme-picker/theme-tile-textures-night.css +107 -1
- package/lib/themes/teal.css +2 -3
- package/package.json +28 -4
- package/dist/background--Bf_EbFR.js +0 -159
- package/dist/empty-state-s2CSjKXJ.js +0 -126
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/* The celestial presets (`eclipse`, `meteor-shower`, `ringed-planet`,
|
|
2
|
+
* `northern-lights`) and the `sky` overlay, which draws the moon or one of
|
|
3
|
+
* them over any preset. Core's `/backgrounds/celestial` builds the scenes: the
|
|
4
|
+
* root is `mn cl-<preset>`, the colours are the `k1..k3` and `s1..s3` classes
|
|
5
|
+
* of scene.css, and a scene holds no inline style. Both kinds of scene sit in
|
|
6
|
+
* a `[data-scene][data-celestial]` div, which is what this file styles, so the
|
|
7
|
+
* look is the same alone and as a sky. Discreet like `moon.css`: a faint
|
|
8
|
+
* watermark in light (multiplied into the page), silver light in dark.
|
|
9
|
+
*
|
|
10
|
+
* Motion (opt-in, `animated`): stars twinkle, meteors glide, ribbons drift;
|
|
11
|
+
* never under `prefers-reduced-motion`. React only. */
|
|
12
|
+
@import "../css/scene.css";
|
|
13
|
+
|
|
14
|
+
@layer components {
|
|
15
|
+
/* The wash behind a celestial preset, as the moon's: two faint pools of
|
|
16
|
+
* the tone, the strength each intensity sets. */
|
|
17
|
+
:is(
|
|
18
|
+
[data-background="eclipse"],
|
|
19
|
+
[data-background="meteor-shower"],
|
|
20
|
+
[data-background="ringed-planet"]
|
|
21
|
+
) > [data-layer="wash"] {
|
|
22
|
+
position: absolute;
|
|
23
|
+
inset: 0;
|
|
24
|
+
background:
|
|
25
|
+
radial-gradient(
|
|
26
|
+
ellipse 70% 60% at 80% 16%,
|
|
27
|
+
color-mix(in oklab, var(--nxgt-bg-c3) var(--nxgt-bg-a1), transparent),
|
|
28
|
+
transparent 72%
|
|
29
|
+
),
|
|
30
|
+
radial-gradient(
|
|
31
|
+
ellipse 60% 55% at 12% 92%,
|
|
32
|
+
color-mix(in oklab, var(--nxgt-bg-c1) var(--nxgt-bg-a1), transparent),
|
|
33
|
+
transparent 70%
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* The lights hang from the top edge: a pool across it, one at the foot. */
|
|
38
|
+
[data-background="northern-lights"] > [data-layer="wash"] {
|
|
39
|
+
position: absolute;
|
|
40
|
+
inset: 0;
|
|
41
|
+
background:
|
|
42
|
+
radial-gradient(
|
|
43
|
+
ellipse 90% 45% at 50% 0%,
|
|
44
|
+
color-mix(in oklab, var(--nxgt-bg-c3) var(--nxgt-bg-a1), transparent),
|
|
45
|
+
transparent 75%
|
|
46
|
+
),
|
|
47
|
+
radial-gradient(
|
|
48
|
+
ellipse 60% 50% at 14% 96%,
|
|
49
|
+
color-mix(in oklab, var(--nxgt-bg-c1) var(--nxgt-bg-a1), transparent),
|
|
50
|
+
transparent 70%
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
[data-background] > [data-scene][data-celestial] {
|
|
55
|
+
overflow: hidden;
|
|
56
|
+
container: nxgt-sky / inline-size;
|
|
57
|
+
/* In light the scene is multiplied into the page: a faint watermark. */
|
|
58
|
+
mix-blend-mode: multiply;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* The scene is written for 0.8 at the default strength: subtle 0.47,
|
|
62
|
+
* vivid the full 1. */
|
|
63
|
+
[data-background] > [data-scene][data-celestial] > .mn :is(.mo, .mh) {
|
|
64
|
+
opacity: calc(var(--nxgt-bg-op) / 0.9);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* The scene has no viewBox (lengths are pixels, positions shares of the
|
|
68
|
+
* container): its bodies, halos and stars draw past their own origin. */
|
|
69
|
+
[data-background] > [data-scene][data-celestial] .pt {
|
|
70
|
+
overflow: visible;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* The lit part of the body is lighter still. */
|
|
74
|
+
[data-background] > [data-scene][data-celestial] .md {
|
|
75
|
+
opacity: 0.55;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* A narrow container: the moon and the eclipse at half size and the
|
|
79
|
+
* planet and its ring at two thirds, so they stay whole in their corner
|
|
80
|
+
* (the cut-out of an eclipse or a planet is in its halo too). */
|
|
81
|
+
@container nxgt-sky (max-width: 640px) {
|
|
82
|
+
[data-background]
|
|
83
|
+
> [data-scene][data-celestial]
|
|
84
|
+
.mn:not(.cl-ringed-planet)
|
|
85
|
+
.mg
|
|
86
|
+
> .mo,
|
|
87
|
+
[data-background] > [data-scene][data-celestial] .cl-eclipse .mh > circle {
|
|
88
|
+
transform: scale(0.5);
|
|
89
|
+
}
|
|
90
|
+
[data-background]
|
|
91
|
+
> [data-scene][data-celestial]
|
|
92
|
+
.cl-ringed-planet
|
|
93
|
+
:is(.mg > .mo, .mh > circle) {
|
|
94
|
+
transform: scale(0.65);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* In dark it adds nothing but light, and the body is silver, lighter than the lifted tone. */
|
|
99
|
+
:is(.dark, [data-theme="dark"])
|
|
100
|
+
[data-background]
|
|
101
|
+
> [data-scene][data-celestial],
|
|
102
|
+
[data-background]:is(.dark, [data-theme="dark"])
|
|
103
|
+
> [data-scene][data-celestial] {
|
|
104
|
+
mix-blend-mode: normal;
|
|
105
|
+
}
|
|
106
|
+
:is(.dark, [data-theme="dark"])
|
|
107
|
+
[data-background]
|
|
108
|
+
> [data-scene][data-celestial]
|
|
109
|
+
.md,
|
|
110
|
+
[data-background]:is(.dark, [data-theme="dark"])
|
|
111
|
+
> [data-scene][data-celestial]
|
|
112
|
+
.md {
|
|
113
|
+
color: color-mix(in oklab, var(--nxgt-bg-c2) 30%, white);
|
|
114
|
+
opacity: 0.78;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* The delay classes (`l1..l4`) only set a number, which the animations
|
|
118
|
+
* above read: one rule each, whatever an animation's own specificity. */
|
|
119
|
+
[data-background] > [data-scene][data-celestial] .l1 {
|
|
120
|
+
--nxgt-sky-delay: 0s;
|
|
121
|
+
}
|
|
122
|
+
[data-background] > [data-scene][data-celestial] .l2 {
|
|
123
|
+
--nxgt-sky-delay: -2.5s;
|
|
124
|
+
}
|
|
125
|
+
[data-background] > [data-scene][data-celestial] .l3 {
|
|
126
|
+
--nxgt-sky-delay: -5s;
|
|
127
|
+
}
|
|
128
|
+
[data-background] > [data-scene][data-celestial] .l4 {
|
|
129
|
+
--nxgt-sky-delay: -7.5s;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* The ribbons and the meteors move from their own box. */
|
|
133
|
+
[data-background] > [data-scene][data-celestial] .cl-northern-lights .au {
|
|
134
|
+
transform-box: fill-box;
|
|
135
|
+
transform-origin: 50% 0;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
140
|
+
@keyframes nxgt-bg-sky-twinkle {
|
|
141
|
+
to {
|
|
142
|
+
opacity: 0.3;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
@keyframes nxgt-bg-sky-meteor-fade {
|
|
146
|
+
0%,
|
|
147
|
+
100% {
|
|
148
|
+
opacity: 0;
|
|
149
|
+
}
|
|
150
|
+
6% {
|
|
151
|
+
opacity: 1;
|
|
152
|
+
}
|
|
153
|
+
30% {
|
|
154
|
+
opacity: 0;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
@keyframes nxgt-bg-sky-meteor-glide {
|
|
158
|
+
0%,
|
|
159
|
+
100% {
|
|
160
|
+
transform: translate(0, 0);
|
|
161
|
+
}
|
|
162
|
+
30% {
|
|
163
|
+
transform: translate(-72px, 48px);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
@keyframes nxgt-bg-sky-drift {
|
|
167
|
+
to {
|
|
168
|
+
transform: translate(3px, 1px) scaleY(1.1);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
@layer components {
|
|
173
|
+
[data-background][data-animated] > [data-scene][data-celestial] .tw {
|
|
174
|
+
animation: nxgt-bg-sky-twinkle 8s ease-in-out var(--nxgt-sky-delay, 0s)
|
|
175
|
+
infinite alternate var(--nxgt-bg-play, running);
|
|
176
|
+
}
|
|
177
|
+
[data-background][data-animated]
|
|
178
|
+
> [data-scene][data-celestial]
|
|
179
|
+
.cl-meteor-shower
|
|
180
|
+
.mt {
|
|
181
|
+
animation: nxgt-bg-sky-meteor-fade 10s linear var(--nxgt-sky-delay, 0s)
|
|
182
|
+
infinite var(--nxgt-bg-play, running);
|
|
183
|
+
}
|
|
184
|
+
[data-background][data-animated]
|
|
185
|
+
> [data-scene][data-celestial]
|
|
186
|
+
.cl-meteor-shower
|
|
187
|
+
.mt
|
|
188
|
+
> .mo {
|
|
189
|
+
animation: nxgt-bg-sky-meteor-glide 10s ease-out var(--nxgt-sky-delay, 0s)
|
|
190
|
+
infinite var(--nxgt-bg-play, running);
|
|
191
|
+
}
|
|
192
|
+
[data-background][data-animated]
|
|
193
|
+
> [data-scene][data-celestial]
|
|
194
|
+
.cl-northern-lights
|
|
195
|
+
.au {
|
|
196
|
+
animation: nxgt-bg-sky-drift 14s ease-in-out var(--nxgt-sky-delay, 0s)
|
|
197
|
+
infinite alternate var(--nxgt-bg-play, running);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/* The `icons` preset: Font Awesome icons, each a `<use>` of a sprite file the
|
|
2
|
+
* app serves, over a faint wash. The scene is core's `buildIconScene`
|
|
3
|
+
* (`@nxgt/material-core/backgrounds/icons`); this file gives it its colours,
|
|
4
|
+
* its constellation threads and its motion. A scene holds no `style`: an icon
|
|
5
|
+
* carries a tone class (`k1..k3`, colours in scene.css) and the root carries
|
|
6
|
+
* `ic-so0..ic-so10` and `ic-so85` (a duotone icon's second layer, in tenths, or 0.85) and, for
|
|
7
|
+
* `duotone: 'tones'`, `ic-tones`.
|
|
8
|
+
*
|
|
9
|
+
* The sprites read `--fa-primary-color`, `--fa-secondary-color` and
|
|
10
|
+
* `--fa-secondary-opacity`; custom properties inherit into the `<use>` copy.
|
|
11
|
+
* By default the second layer is the same tone, faded (`opacity`); `ic-tones`
|
|
12
|
+
* takes the next tone for it, nearly opaque. A flat (non-duotone) style reads
|
|
13
|
+
* the tone through `currentColor`. Motion (opt-in, `animated`): each icon
|
|
14
|
+
* drifts a few pixels along one of four vectors (`iv1..4`) at one of four
|
|
15
|
+
* paces (`ia`, delay `id1..4`), on `translate`, because `transform` carries
|
|
16
|
+
* its place. React only: nothing in the shared `css/` folder. */
|
|
17
|
+
@import "../css/motifs.css";
|
|
18
|
+
|
|
19
|
+
@layer components {
|
|
20
|
+
[data-background="icons"] > [data-layer="wash"] {
|
|
21
|
+
position: absolute;
|
|
22
|
+
inset: 0;
|
|
23
|
+
background:
|
|
24
|
+
radial-gradient(
|
|
25
|
+
ellipse 75% 65% at 22% 18%,
|
|
26
|
+
color-mix(in oklab, var(--nxgt-bg-c1) var(--nxgt-bg-a1), transparent),
|
|
27
|
+
transparent 72%
|
|
28
|
+
),
|
|
29
|
+
radial-gradient(
|
|
30
|
+
ellipse 60% 60% at 86% 90%,
|
|
31
|
+
color-mix(in oklab, var(--nxgt-bg-c3) var(--nxgt-bg-a1), transparent),
|
|
32
|
+
transparent 70%
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
[data-background="icons"] > [data-scene] {
|
|
37
|
+
overflow: hidden;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* Primary layer: the icon's tone. Second layer: the same tone, faded. */
|
|
41
|
+
[data-background="icons"] > [data-scene] .ic.k1 {
|
|
42
|
+
--fa-primary-color: var(--nxgt-bg-c1);
|
|
43
|
+
--fa-secondary-color: var(--nxgt-bg-c1);
|
|
44
|
+
}
|
|
45
|
+
[data-background="icons"] > [data-scene] .ic.k2 {
|
|
46
|
+
--fa-primary-color: var(--nxgt-bg-c2);
|
|
47
|
+
--fa-secondary-color: var(--nxgt-bg-c2);
|
|
48
|
+
}
|
|
49
|
+
[data-background="icons"] > [data-scene] .ic.k3 {
|
|
50
|
+
--fa-primary-color: var(--nxgt-bg-c3);
|
|
51
|
+
--fa-secondary-color: var(--nxgt-bg-c3);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* Two tones: the second layer takes the next tone. */
|
|
55
|
+
[data-background="icons"] > [data-scene] > .ic-tones .ic.k1 {
|
|
56
|
+
--fa-secondary-color: var(--nxgt-bg-c2);
|
|
57
|
+
}
|
|
58
|
+
[data-background="icons"] > [data-scene] > .ic-tones .ic.k2 {
|
|
59
|
+
--fa-secondary-color: var(--nxgt-bg-c3);
|
|
60
|
+
}
|
|
61
|
+
[data-background="icons"] > [data-scene] > .ic-tones .ic.k3 {
|
|
62
|
+
--fa-secondary-color: var(--nxgt-bg-c1);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* The second layer's opacity, in tenths (`secondaryOpacity`). */
|
|
66
|
+
[data-background="icons"] > [data-scene] > .ic-so0 .ic {
|
|
67
|
+
--fa-secondary-opacity: 0;
|
|
68
|
+
}
|
|
69
|
+
[data-background="icons"] > [data-scene] > .ic-so1 .ic {
|
|
70
|
+
--fa-secondary-opacity: 0.1;
|
|
71
|
+
}
|
|
72
|
+
[data-background="icons"] > [data-scene] > .ic-so2 .ic {
|
|
73
|
+
--fa-secondary-opacity: 0.2;
|
|
74
|
+
}
|
|
75
|
+
[data-background="icons"] > [data-scene] > .ic-so3 .ic {
|
|
76
|
+
--fa-secondary-opacity: 0.3;
|
|
77
|
+
}
|
|
78
|
+
[data-background="icons"] > [data-scene] > .ic-so4 .ic {
|
|
79
|
+
--fa-secondary-opacity: 0.4;
|
|
80
|
+
}
|
|
81
|
+
[data-background="icons"] > [data-scene] > .ic-so5 .ic {
|
|
82
|
+
--fa-secondary-opacity: 0.5;
|
|
83
|
+
}
|
|
84
|
+
[data-background="icons"] > [data-scene] > .ic-so6 .ic {
|
|
85
|
+
--fa-secondary-opacity: 0.6;
|
|
86
|
+
}
|
|
87
|
+
[data-background="icons"] > [data-scene] > .ic-so7 .ic {
|
|
88
|
+
--fa-secondary-opacity: 0.7;
|
|
89
|
+
}
|
|
90
|
+
[data-background="icons"] > [data-scene] > .ic-so8 .ic {
|
|
91
|
+
--fa-secondary-opacity: 0.8;
|
|
92
|
+
}
|
|
93
|
+
[data-background="icons"] > [data-scene] > .ic-so9 .ic {
|
|
94
|
+
--fa-secondary-opacity: 0.9;
|
|
95
|
+
}
|
|
96
|
+
[data-background="icons"] > [data-scene] > .ic-so10 .ic {
|
|
97
|
+
--fa-secondary-opacity: 1;
|
|
98
|
+
}
|
|
99
|
+
/* 0.85: the default of two tones, or a `secondaryOpacity` of 0.85. */
|
|
100
|
+
[data-background="icons"] > [data-scene] > .ic-so85 .ic {
|
|
101
|
+
--fa-secondary-opacity: 0.85;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* The constellation's threads and dots. */
|
|
105
|
+
[data-background="icons"] > [data-scene] .ic-ln {
|
|
106
|
+
stroke: var(--nxgt-bg-c1);
|
|
107
|
+
stroke-width: 0.7;
|
|
108
|
+
stroke-linecap: round;
|
|
109
|
+
opacity: 0.4;
|
|
110
|
+
}
|
|
111
|
+
[data-background="icons"] > [data-scene] .ic-dt {
|
|
112
|
+
fill: var(--nxgt-bg-c1);
|
|
113
|
+
opacity: 0.5;
|
|
114
|
+
}
|
|
115
|
+
[data-background="icons"] > [data-scene] .ic-ln.k2 {
|
|
116
|
+
stroke: var(--nxgt-bg-c2);
|
|
117
|
+
}
|
|
118
|
+
[data-background="icons"] > [data-scene] .ic-ln.k3 {
|
|
119
|
+
stroke: var(--nxgt-bg-c3);
|
|
120
|
+
}
|
|
121
|
+
[data-background="icons"] > [data-scene] .ic-dt.k2 {
|
|
122
|
+
fill: var(--nxgt-bg-c2);
|
|
123
|
+
}
|
|
124
|
+
[data-background="icons"] > [data-scene] .ic-dt.k3 {
|
|
125
|
+
fill: var(--nxgt-bg-c3);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
130
|
+
@keyframes nxgt-bg-ic-1 {
|
|
131
|
+
to {
|
|
132
|
+
translate: 14px 10px;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
@keyframes nxgt-bg-ic-2 {
|
|
136
|
+
to {
|
|
137
|
+
translate: -12px 12px;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
@keyframes nxgt-bg-ic-3 {
|
|
141
|
+
to {
|
|
142
|
+
translate: 12px -12px;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
@keyframes nxgt-bg-ic-4 {
|
|
146
|
+
to {
|
|
147
|
+
translate: -14px -9px;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
@layer components {
|
|
152
|
+
[data-background="icons"][data-animated] > [data-scene] .ia {
|
|
153
|
+
animation: nxgt-bg-ic-1 18s ease-in-out infinite alternate
|
|
154
|
+
var(--nxgt-bg-play, running);
|
|
155
|
+
}
|
|
156
|
+
[data-background="icons"][data-animated] > [data-scene] .iv2 {
|
|
157
|
+
animation-name: nxgt-bg-ic-2;
|
|
158
|
+
}
|
|
159
|
+
[data-background="icons"][data-animated] > [data-scene] .iv3 {
|
|
160
|
+
animation-name: nxgt-bg-ic-3;
|
|
161
|
+
}
|
|
162
|
+
[data-background="icons"][data-animated] > [data-scene] .iv4 {
|
|
163
|
+
animation-name: nxgt-bg-ic-4;
|
|
164
|
+
}
|
|
165
|
+
[data-background="icons"][data-animated] > [data-scene] .id2 {
|
|
166
|
+
animation-delay: -4s;
|
|
167
|
+
}
|
|
168
|
+
[data-background="icons"][data-animated] > [data-scene] .id3 {
|
|
169
|
+
animation-delay: -9s;
|
|
170
|
+
}
|
|
171
|
+
[data-background="icons"][data-animated] > [data-scene] .id4 {
|
|
172
|
+
animation-delay: -13s;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
@@ -21,13 +21,10 @@
|
|
|
21
21
|
@import "./ui/overlays/drawer/vaul-drawer.css";
|
|
22
22
|
@import "./ui/overlays/drawer/vaul-keyframes.css";
|
|
23
23
|
@import "./ui/fields/otp-field/input-otp.css";
|
|
24
|
-
|
|
25
|
-
@import "./ui/feedback/
|
|
24
|
+
/* Feedback: spinner, state scenes, progress, loading and typing indicators. */
|
|
25
|
+
@import "./ui/feedback/feedback.css";
|
|
26
26
|
/* Quiz: the confetti behind a great score. */
|
|
27
27
|
@import "./ui/widgets/education/quizzes/quiz-celebration.css";
|
|
28
|
-
@import "./ui/feedback/loading-indicator/loading-indicator.css";
|
|
29
|
-
/* TypingIndicator's wave (ChatTypingIndicator, ChatMessageList). */
|
|
30
|
-
@import "./ui/feedback/typing-indicator/typing-indicator.css";
|
|
31
28
|
@import "./ui/media/carousel/carousel.css";
|
|
32
29
|
@import "./ui/media/carousel/carousel-first-frame.css";
|
|
33
30
|
@import "./ui/media/media-player/nxgt-media-player.css";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
@import "./spinner/spinner.css";
|
|
2
|
+
/* Illustration: the classes of the state scenes (EmptyState, ErrorState, @nxgt/material/illustrations). */
|
|
3
|
+
@import "./state-frame/illustration.css";
|
|
4
|
+
@import "./progress/progress.css";
|
|
5
|
+
@import "./loading-indicator/loading-indicator.css";
|
|
6
|
+
/* TypingIndicator's wave (ChatTypingIndicator, ChatMessageList). */
|
|
7
|
+
@import "./typing-indicator/typing-indicator.css";
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/* Illustration (`@nxgt/material/illustrations`) and the scenes EmptyState and
|
|
2
|
+
* ErrorState draw with it. The scene is core's `buildIllustration`: it names
|
|
3
|
+
* classes and sets no colour, so everything below is a rule on theme tokens
|
|
4
|
+
* (`--<tone>-text` follow the light and the dark theme). No inline style.
|
|
5
|
+
*
|
|
6
|
+
* A Font Awesome duotone sprite reads `--fa-primary-color`,
|
|
7
|
+
* `--fa-secondary-color` and `--fa-secondary-opacity`: the second layer is the
|
|
8
|
+
* same tone, fainter (`ill-duo-opacity`), or another tone (`ill-duo-tones`). */
|
|
9
|
+
@layer components {
|
|
10
|
+
[data-slot="illustration"] {
|
|
11
|
+
display: block;
|
|
12
|
+
flex-shrink: 0;
|
|
13
|
+
max-width: 100%;
|
|
14
|
+
aspect-ratio: 4 / 3;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
[data-slot="illustration"][data-size="sm"] {
|
|
18
|
+
width: 7.5rem;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
[data-slot="illustration"][data-size="md"] {
|
|
22
|
+
width: 11.875rem;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
[data-slot="illustration"][data-size="lg"] {
|
|
26
|
+
width: 17.5rem;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
[data-slot="illustration"] > svg {
|
|
30
|
+
display: block;
|
|
31
|
+
width: 100%;
|
|
32
|
+
height: 100%;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* The tone: its colour, and the one the second layer takes in `tones`. */
|
|
36
|
+
.ill-primary {
|
|
37
|
+
--ill: var(--primary-text);
|
|
38
|
+
--ill-d: var(--tertiary-text);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.ill-secondary {
|
|
42
|
+
--ill: var(--secondary-text);
|
|
43
|
+
--ill-d: var(--primary-text);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.ill-tertiary {
|
|
47
|
+
--ill: var(--tertiary-text);
|
|
48
|
+
--ill-d: var(--secondary-text);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.ill-error {
|
|
52
|
+
--ill: var(--error-text);
|
|
53
|
+
--ill-d: var(--warning-text);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.ill-warning {
|
|
57
|
+
--ill: var(--warning-text);
|
|
58
|
+
--ill-d: var(--error-text);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.ill-success {
|
|
62
|
+
--ill: var(--success-text);
|
|
63
|
+
--ill-d: var(--primary-text);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Who takes which colour: the hero and the first and fourth satellites the
|
|
67
|
+
* tone, the second and third the secondary and tertiary text. */
|
|
68
|
+
.ill-hero,
|
|
69
|
+
.ill-s0,
|
|
70
|
+
.ill-s3 {
|
|
71
|
+
--c: var(--ill);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.ill-s1 {
|
|
75
|
+
--c: var(--secondary-text);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.ill-s2 {
|
|
79
|
+
--c: var(--tertiary-text);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.ill-hero,
|
|
83
|
+
.ill-sat {
|
|
84
|
+
color: var(--c);
|
|
85
|
+
--fa-primary-color: var(--c);
|
|
86
|
+
--fa-secondary-color: var(--c);
|
|
87
|
+
--fa-primary-opacity: 1;
|
|
88
|
+
--fa-secondary-opacity: 0.4;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.ill-duo-tones :is(.ill-hero, .ill-sat) {
|
|
92
|
+
--fa-secondary-color: var(--ill-d);
|
|
93
|
+
--fa-secondary-opacity: 0.85;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.ill-plate {
|
|
97
|
+
fill: color-mix(in oklab, var(--ill) 17%, transparent);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* The error plate (a gem) is rounded by a stroke of its own colour. */
|
|
101
|
+
.ill-error .ill-plate {
|
|
102
|
+
stroke: color-mix(in oklab, var(--ill) 17%, transparent);
|
|
103
|
+
stroke-width: 12;
|
|
104
|
+
stroke-linejoin: round;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.ill-ring {
|
|
108
|
+
stroke: color-mix(in oklab, var(--ill) 30%, transparent);
|
|
109
|
+
stroke-width: 1;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.ill-satbg {
|
|
113
|
+
fill: var(--card);
|
|
114
|
+
stroke: color-mix(in oklab, var(--c) 35%, transparent);
|
|
115
|
+
stroke-width: 1;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.ill-k0 {
|
|
119
|
+
fill: var(--tertiary-text);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.ill-k1 {
|
|
123
|
+
fill: var(--ill);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* Opt-in motion (`animated`): the satellites drift, the sparkles twinkle. */
|
|
127
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
128
|
+
[data-slot="illustration"][data-animated] :is(.ill-satbg, .ill-sat) {
|
|
129
|
+
animation: nxgt-ill-drift 6s ease-in-out infinite alternate;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
[data-slot="illustration"][data-animated] .ill-s1 {
|
|
133
|
+
animation-delay: -1.5s;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
[data-slot="illustration"][data-animated] .ill-s2 {
|
|
137
|
+
animation-delay: -3s;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
[data-slot="illustration"][data-animated] .ill-s3 {
|
|
141
|
+
animation-delay: -4.5s;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
[data-slot="illustration"][data-animated] .ill-spark {
|
|
145
|
+
transform-box: fill-box;
|
|
146
|
+
transform-origin: center;
|
|
147
|
+
animation: nxgt-ill-twinkle 3.2s ease-in-out infinite alternate;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
[data-slot="illustration"][data-animated] .ill-spark.ill-k1 {
|
|
151
|
+
animation-delay: -1.6s;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
@keyframes nxgt-ill-drift {
|
|
157
|
+
to {
|
|
158
|
+
transform: translateY(-3px);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
@keyframes nxgt-ill-twinkle {
|
|
163
|
+
from {
|
|
164
|
+
opacity: 1;
|
|
165
|
+
transform: scale(1);
|
|
166
|
+
}
|
|
167
|
+
to {
|
|
168
|
+
opacity: 0.45;
|
|
169
|
+
transform: scale(0.75);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/* ThemePicker's mini background, the `icons` preset: the first four icons the
|
|
2
|
+
* theme names, each a `<use>` of the app's sprite, in the tile's own tones. A
|
|
3
|
+
* sprite that is missing draws nothing and the wash stays. A duotone icon's
|
|
4
|
+
* second layer is the same tone, faded (the sprite's `--fa-secondary-opacity`). */
|
|
5
|
+
@layer components {
|
|
6
|
+
[data-slot="theme-tile-background"][data-preset="icons"] {
|
|
7
|
+
position: relative;
|
|
8
|
+
--mini-pattern: none;
|
|
9
|
+
}
|
|
10
|
+
[data-slot="theme-tile-icon"] {
|
|
11
|
+
position: absolute;
|
|
12
|
+
inline-size: 1.15rem;
|
|
13
|
+
block-size: 1.15rem;
|
|
14
|
+
color: var(--mini-a);
|
|
15
|
+
--fa-primary-color: var(--mini-a);
|
|
16
|
+
--fa-secondary-color: var(--mini-a);
|
|
17
|
+
--fa-secondary-opacity: 0.4;
|
|
18
|
+
opacity: 0.8;
|
|
19
|
+
}
|
|
20
|
+
[data-slot="theme-tile-icon"][data-n="1"] {
|
|
21
|
+
inset-inline-start: 10%;
|
|
22
|
+
inset-block-start: 14%;
|
|
23
|
+
rotate: -10deg;
|
|
24
|
+
}
|
|
25
|
+
[data-slot="theme-tile-icon"][data-n="2"] {
|
|
26
|
+
inset-inline-start: 68%;
|
|
27
|
+
inset-block-start: 10%;
|
|
28
|
+
inline-size: 1.4rem;
|
|
29
|
+
block-size: 1.4rem;
|
|
30
|
+
--fa-primary-color: var(--mini-b);
|
|
31
|
+
--fa-secondary-color: var(--mini-b);
|
|
32
|
+
color: var(--mini-b);
|
|
33
|
+
rotate: 8deg;
|
|
34
|
+
}
|
|
35
|
+
[data-slot="theme-tile-icon"][data-n="3"] {
|
|
36
|
+
inset-inline-start: 36%;
|
|
37
|
+
inset-block-start: 52%;
|
|
38
|
+
--fa-primary-color: var(--mini-c);
|
|
39
|
+
--fa-secondary-color: var(--mini-c);
|
|
40
|
+
color: var(--mini-c);
|
|
41
|
+
rotate: 6deg;
|
|
42
|
+
}
|
|
43
|
+
[data-slot="theme-tile-icon"][data-n="4"] {
|
|
44
|
+
inset-inline-start: 82%;
|
|
45
|
+
inset-block-start: 56%;
|
|
46
|
+
inline-size: 1rem;
|
|
47
|
+
block-size: 1rem;
|
|
48
|
+
rotate: -14deg;
|
|
49
|
+
}
|
|
50
|
+
}
|