├── src
├── www
│ ├── assets
│ │ ├── .nojekyll
│ │ ├── img
│ │ │ ├── avatar-1.png
│ │ │ ├── avatar-2.png
│ │ │ ├── avatar-3.png
│ │ │ ├── avatar-4.png
│ │ │ ├── avatar-5.png
│ │ │ ├── 04696e1a-eb5d-43b9-bb1d-d2ee117f4430.webp
│ │ │ ├── 1b9a004a-db27-45e4-b762-0fa21bc97277.webp
│ │ │ ├── 4603a846-4daf-4018-aa74-e3ab567a69fc.webp
│ │ │ ├── b64f151d-e194-497a-9b70-e15ffdd8730d.webp
│ │ │ └── c2179403-954f-4f5d-82a4-3dfdeaba9597.webp
│ │ ├── github.svg
│ │ ├── metis.svg
│ │ └── favicon.svg
│ ├── docs
│ │ ├── components
│ │ │ ├── transition
│ │ │ │ └── +page.md
│ │ │ ├── switch
│ │ │ │ └── +page.md
│ │ │ ├── breadcrumbs
│ │ │ │ └── +page.md
│ │ │ ├── pagination
│ │ │ │ └── +page.md
│ │ │ ├── checkbox
│ │ │ │ └── +page.md
│ │ │ ├── progress
│ │ │ │ └── +page.md
│ │ │ ├── range
│ │ │ │ └── +page.md
│ │ │ ├── steps
│ │ │ │ └── +page.md
│ │ │ ├── radio
│ │ │ │ └── +page.md
│ │ │ ├── periodictable
│ │ │ │ └── +page.md
│ │ │ └── meter
│ │ │ │ └── +page.md
│ │ ├── 01-getting_started
│ │ │ ├── changelog
│ │ │ │ └── +page.md
│ │ │ ├── 02-customize
│ │ │ │ └── +page.md
│ │ │ ├── browser-support
│ │ │ │ └── +page.md
│ │ │ └── 01-installation
│ │ │ │ └── +page.md
│ │ ├── +layout.svelte
│ │ ├── layouts
│ │ │ ├── sidebar
│ │ │ │ └── +page.md
│ │ │ ├── code
│ │ │ │ └── +page.md
│ │ │ ├── hero
│ │ │ │ └── +page.md
│ │ │ ├── container
│ │ │ │ └── +page.md
│ │ │ ├── navbar
│ │ │ │ └── +page.md
│ │ │ ├── empty
│ │ │ │ └── +page.md
│ │ │ ├── form
│ │ │ │ └── +page.md
│ │ │ ├── figure
│ │ │ │ └── +page.md
│ │ │ ├── tile
│ │ │ │ └── +page.md
│ │ │ ├── panel
│ │ │ │ └── +page.md
│ │ │ ├── grid
│ │ │ │ └── +page.md
│ │ │ └── toggle
│ │ │ │ └── +page.md
│ │ └── +page.svelte
│ ├── types.ts
│ ├── app.html
│ ├── app.scss
│ ├── +layout.server.ts
│ ├── media.ts
│ └── +page.svelte
├── lib
│ ├── types
│ │ ├── asset.d.ts
│ │ ├── shape.d.ts
│ │ ├── size.d.ts
│ │ ├── bg.d.ts
│ │ ├── const.ts
│ │ ├── display.d.ts
│ │ ├── text.d.ts
│ │ ├── icons.d.ts
│ │ └── position.d.ts
│ ├── layouts
│ │ ├── Grid
│ │ │ ├── index.ts
│ │ │ ├── Col.svelte
│ │ │ └── Grid.svelte
│ │ ├── Card
│ │ │ ├── index.ts
│ │ │ └── Card.svelte
│ │ ├── Code
│ │ │ ├── index.ts
│ │ │ └── Code.svelte
│ │ ├── Hero
│ │ │ ├── index.ts
│ │ │ └── Hero.svelte
│ │ ├── Tile
│ │ │ ├── index.ts
│ │ │ └── Tile.svelte
│ │ ├── Empty
│ │ │ ├── index.ts
│ │ │ └── Empty.svelte
│ │ ├── Modal
│ │ │ ├── index.ts
│ │ │ └── Modal.svelte
│ │ ├── Panel
│ │ │ ├── index.ts
│ │ │ └── Panel.svelte
│ │ ├── Figure
│ │ │ ├── index.ts
│ │ │ └── Figure.svelte
│ │ ├── Navbar
│ │ │ ├── index.ts
│ │ │ └── Navbar.svelte
│ │ ├── Toggle
│ │ │ ├── index.ts
│ │ │ └── Toggle.svelte
│ │ ├── Popover
│ │ │ ├── index.ts
│ │ │ └── Popover.svelte
│ │ ├── Sidebar
│ │ │ └── index.ts
│ │ ├── Dropdown
│ │ │ ├── index.ts
│ │ │ └── Dropdown.svelte
│ │ ├── Container
│ │ │ ├── index.ts
│ │ │ └── Container.svelte
│ │ ├── Form
│ │ │ ├── index.ts
│ │ │ ├── Form.svelte
│ │ │ └── Group.svelte
│ │ └── index.ts
│ ├── components
│ │ ├── Bars
│ │ │ ├── index.ts
│ │ │ └── Bars.svelte
│ │ ├── Chip
│ │ │ ├── index.ts
│ │ │ └── Chip.svelte
│ │ ├── Icon
│ │ │ └── index.ts
│ │ ├── Menu
│ │ │ ├── index.ts
│ │ │ └── Menu.svelte
│ │ ├── Tabs
│ │ │ ├── index.ts
│ │ │ └── Tabs.svelte
│ │ ├── Meter
│ │ │ └── index.ts
│ │ ├── Radio
│ │ │ ├── index.ts
│ │ │ └── Radio.svelte
│ │ ├── Range
│ │ │ ├── index.ts
│ │ │ └── Range.svelte
│ │ ├── Steps
│ │ │ ├── index.ts
│ │ │ └── Steps.svelte
│ │ ├── Avatar
│ │ │ ├── index.ts
│ │ │ └── Avatar.svelte
│ │ ├── Select
│ │ │ ├── index.ts
│ │ │ └── Select.svelte
│ │ ├── Switch
│ │ │ ├── index.ts
│ │ │ └── Switch.svelte
│ │ ├── Divider
│ │ │ ├── index.ts
│ │ │ └── Divider.svelte
│ │ ├── Accordion
│ │ │ ├── Accordioner.svelte
│ │ │ ├── index.ts
│ │ │ └── Accordion.svelte
│ │ ├── Checkbox
│ │ │ ├── index.ts
│ │ │ └── Checkbox.svelte
│ │ ├── Progress
│ │ │ ├── index.ts
│ │ │ └── Progress.svelte
│ │ ├── CIFPlayer
│ │ │ ├── index.ts
│ │ │ └── CIFPlayer.svelte
│ │ ├── Pagination
│ │ │ └── index.ts
│ │ ├── Transition
│ │ │ ├── index.ts
│ │ │ └── Transition.svelte
│ │ ├── Breadcrumbs
│ │ │ ├── index.ts
│ │ │ └── Breadcrumbs.svelte
│ │ ├── Autocomplete
│ │ │ ├── index.ts
│ │ │ └── utils.ts
│ │ ├── PeriodicTable
│ │ │ ├── index.ts
│ │ │ └── chemical_content.json
│ │ ├── Badge
│ │ │ ├── index.ts
│ │ │ ├── action.ts
│ │ │ └── Badge.svelte
│ │ ├── Input
│ │ │ ├── index.ts
│ │ │ ├── Group.svelte
│ │ │ └── Input.svelte
│ │ ├── Toast
│ │ │ ├── index.ts
│ │ │ ├── positions.ts
│ │ │ ├── timer.ts
│ │ │ ├── toast.ts
│ │ │ └── Toaster.svelte
│ │ ├── Button
│ │ │ ├── index.ts
│ │ │ ├── Group.svelte
│ │ │ ├── IconButton.svelte
│ │ │ └── Button.svelte
│ │ └── index.ts
│ ├── helpers
│ │ ├── actions.ts
│ │ ├── uuid.ts
│ │ └── str_to_rgb.ts
│ ├── index.ts
│ └── dark.scss
└── global.d.ts
├── .npmrc
├── .husky
└── pre-commit
├── .gitignore
├── mdsvex.config.js
├── tests
├── setup
│ ├── register.js
│ ├── preprocess.js
│ ├── svelteconfig.js
│ ├── transformer.js
│ └── slots.js
├── components
│ ├── Avatar
│ │ └── Avatar.spec.ts
│ ├── Transition
│ │ └── Transition.spec.ts
│ ├── Pagination
│ │ └── Pagination.spec.ts
│ ├── Tabs
│ │ └── Tabs.spec.ts
│ ├── Radio
│ │ └── Radio.spec.ts
│ ├── Toast
│ │ └── Toast.spec.ts
│ ├── Range
│ │ └── Range.spec.ts
│ ├── Divider
│ │ └── Divider.spec.ts
│ ├── Input
│ │ ├── Group.spec.ts
│ │ └── Input.spec.ts
│ ├── Icon
│ │ └── Icon.spec.ts
│ ├── Steps
│ │ └── Steps.spec.ts
│ ├── Breadcrumbs
│ │ └── Breadcrumbs.spec.ts
│ ├── Select
│ │ └── Select.spec.ts
│ ├── Progress
│ │ └── Progress.spec.ts
│ ├── Badge
│ │ └── Badge.spec.ts
│ ├── Switch
│ │ └── Switch.spec.ts
│ ├── Button
│ │ ├── Group.spec.ts
│ │ ├── IconButton.spec.ts
│ │ └── Button.spec.ts
│ ├── Accordion
│ │ └── Accordion.spec.ts
│ ├── Chip
│ │ └── Chip.spec.ts
│ └── Checkbox
│ │ └── Checkbox.spec.ts
└── layouts
│ ├── Form
│ ├── Form.spec.ts
│ └── FormGroup.spec.ts
│ ├── Card
│ └── Card.spec.ts
│ ├── Code
│ └── Code.spec.ts
│ ├── Hero
│ └── Hero.spec.ts
│ ├── Tile
│ └── Tile.spec.ts
│ ├── Grid
│ ├── Col.spec.ts
│ └── Grid.spec.ts
│ ├── Empty
│ └── Empty.spec.ts
│ ├── Modal
│ └── Modal.spec.ts
│ ├── Panel
│ └── Panel.spec.ts
│ ├── Figure
│ └── Figure.spec.ts
│ ├── Navbar
│ └── Navbar.spec.ts
│ ├── Popover
│ └── Popover.spec.ts
│ ├── Sidebar
│ └── Sidebar.spec.ts
│ ├── Dropdown
│ └── Dropdown.spec.ts
│ └── Container
│ └── Container.spec.ts
├── .editorconfig
├── .prettierrc
├── .eslintrc.cjs
├── vite.config.js
├── tsconfig.json
├── LICENSE
├── svelte.config.js
├── README.md
└── package.json
/src/www/assets/.nojekyll:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npm run format
5 |
--------------------------------------------------------------------------------
/src/www/assets/img/avatar-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basf/svelte-spectre/HEAD/src/www/assets/img/avatar-1.png
--------------------------------------------------------------------------------
/src/www/assets/img/avatar-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basf/svelte-spectre/HEAD/src/www/assets/img/avatar-2.png
--------------------------------------------------------------------------------
/src/www/assets/img/avatar-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basf/svelte-spectre/HEAD/src/www/assets/img/avatar-3.png
--------------------------------------------------------------------------------
/src/www/assets/img/avatar-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basf/svelte-spectre/HEAD/src/www/assets/img/avatar-4.png
--------------------------------------------------------------------------------
/src/www/assets/img/avatar-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basf/svelte-spectre/HEAD/src/www/assets/img/avatar-5.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 |
--------------------------------------------------------------------------------
/src/lib/types/asset.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.svg' {
2 | const content: any;
3 | export default content;
4 | }
5 |
--------------------------------------------------------------------------------
/src/lib/layouts/Grid/index.ts:
--------------------------------------------------------------------------------
1 | export { default as Grid } from './Grid.svelte';
2 | export { default as Col } from './Col.svelte';
3 |
--------------------------------------------------------------------------------
/src/lib/types/shape.d.ts:
--------------------------------------------------------------------------------
1 | /* class should be prefixed with `s-{type}` */
2 | export type Shape = 'none' | 'rounded' | 'circle';
3 |
--------------------------------------------------------------------------------
/src/lib/layouts/Card/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Card.svelte';
2 | export { default } from './Card.svelte';
3 | export { default as Card } from './Card.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Code/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Code.svelte';
2 | export { default } from './Code.svelte';
3 | export { default as Code } from './Code.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Hero/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Hero.svelte';
2 | export { default } from './Hero.svelte';
3 | export { default as Hero } from './Hero.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Tile/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Tile.svelte';
2 | export { default } from './Tile.svelte';
3 | export { default as Tile } from './Tile.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/types/size.d.ts:
--------------------------------------------------------------------------------
1 | import type { SIZE, ZOOM } from './const';
2 |
3 | export type Size = keyof typeof SIZE;
4 | export type Zoom = keyof typeof ZOOM;
5 |
--------------------------------------------------------------------------------
/src/lib/components/Bars/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Bars.svelte';
2 | export { default } from './Bars.svelte';
3 | export { default as Bars } from './Bars.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Chip/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Chip.svelte';
2 | export { default } from './Chip.svelte';
3 | export { default as Chip } from './Chip.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Icon/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Icon.svelte';
2 | export { default } from './Icon.svelte';
3 | export { default as Icon } from './Icon.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Menu/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Menu.svelte';
2 | export { default } from './Menu.svelte';
3 | export { default as Menu } from './Menu.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Tabs/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Tabs.svelte';
2 | export { default } from './Tabs.svelte';
3 | export { default as Tabs } from './Tabs.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Empty/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Empty.svelte';
2 | export { default } from './Empty.svelte';
3 | export { default as Empty } from './Empty.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Modal/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Modal.svelte';
2 | export { default } from './Modal.svelte';
3 | export { default as Modal } from './Modal.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Panel/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Panel.svelte';
2 | export { default } from './Panel.svelte';
3 | export { default as Panel } from './Panel.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Meter/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Meter.svelte';
2 | export { default } from './Meter.svelte';
3 | export { default as Meter } from './Meter.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Radio/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Radio.svelte';
2 | export { default } from './Radio.svelte';
3 | export { default as Radio } from './Radio.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Range/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Range.svelte';
2 | export { default } from './Range.svelte';
3 | export { default as Range } from './Range.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Steps/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Steps.svelte';
2 | export { default } from './Steps.svelte';
3 | export { default as Steps } from './Steps.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Figure/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Figure.svelte';
2 | export { default } from './Figure.svelte';
3 | export { default as Figure } from './Figure.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Navbar/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Navbar.svelte';
2 | export { default } from './Navbar.svelte';
3 | export { default as Navbar } from './Navbar.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Toggle/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Toggle.svelte';
2 | export { default } from './Toggle.svelte';
3 | export { default as Toggle } from './Toggle.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Avatar/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Avatar.svelte';
2 | export { default } from './Avatar.svelte';
3 | export { default as Avatar } from './Avatar.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Select/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Select.svelte';
2 | export { default } from './Select.svelte';
3 | export { default as Select } from './Select.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Switch/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Switch.svelte';
2 | export { default } from './Switch.svelte';
3 | export { default as Switch } from './Switch.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Popover/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Popover.svelte';
2 | export { default } from './Popover.svelte';
3 | export { default as Popover } from './Popover.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Sidebar/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Sidebar.svelte';
2 | export { default } from './Sidebar.svelte';
3 | export { default as Sidebar } from './Sidebar.svelte';
4 |
--------------------------------------------------------------------------------
/src/www/assets/img/04696e1a-eb5d-43b9-bb1d-d2ee117f4430.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basf/svelte-spectre/HEAD/src/www/assets/img/04696e1a-eb5d-43b9-bb1d-d2ee117f4430.webp
--------------------------------------------------------------------------------
/src/www/assets/img/1b9a004a-db27-45e4-b762-0fa21bc97277.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basf/svelte-spectre/HEAD/src/www/assets/img/1b9a004a-db27-45e4-b762-0fa21bc97277.webp
--------------------------------------------------------------------------------
/src/www/assets/img/4603a846-4daf-4018-aa74-e3ab567a69fc.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basf/svelte-spectre/HEAD/src/www/assets/img/4603a846-4daf-4018-aa74-e3ab567a69fc.webp
--------------------------------------------------------------------------------
/src/www/assets/img/b64f151d-e194-497a-9b70-e15ffdd8730d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basf/svelte-spectre/HEAD/src/www/assets/img/b64f151d-e194-497a-9b70-e15ffdd8730d.webp
--------------------------------------------------------------------------------
/src/www/assets/img/c2179403-954f-4f5d-82a4-3dfdeaba9597.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basf/svelte-spectre/HEAD/src/www/assets/img/c2179403-954f-4f5d-82a4-3dfdeaba9597.webp
--------------------------------------------------------------------------------
/src/lib/components/Divider/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Divider.svelte';
2 | export { default } from './Divider.svelte';
3 | export { default as Divider } from './Divider.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/layouts/Dropdown/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Dropdown.svelte';
2 | export { default } from './Dropdown.svelte';
3 | export { default as Dropdown } from './Dropdown.svelte';
4 |
--------------------------------------------------------------------------------
/src/lib/components/Accordion/Accordioner.svelte:
--------------------------------------------------------------------------------
1 |
5 | {:else}
6 |
7 | {/if}
8 |
9 |
14 |
15 |
20 |
--------------------------------------------------------------------------------
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | parser: '@typescript-eslint/parser',
4 | extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
5 | plugins: ['svelte3', '@typescript-eslint'],
6 | ignorePatterns: ['*.cjs'],
7 | overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }],
8 | settings: {
9 | 'svelte3/typescript': () => require('typescript')
10 | },
11 | parserOptions: {
12 | sourceType: 'module',
13 | ecmaVersion: 2020
14 | },
15 | env: {
16 | browser: true,
17 | es2017: true,
18 | node: true
19 | }
20 | };
21 |
--------------------------------------------------------------------------------
/src/lib/components/Badge/action.ts:
--------------------------------------------------------------------------------
1 | export default function addBadge(node: HTMLElement, badge: string) {
2 | function update(badge: string) {
3 | if (!badge && !badge?.length) return destroy();
4 | node.classList.add('badge');
5 | badge.length > 0
6 | ? node.setAttribute('data-badge', badge)
7 | : node.removeAttribute('data-badge');
8 | }
9 | function destroy() {
10 | node.classList.remove('badge');
11 | node.removeAttribute('data-badge');
12 | }
13 | update(badge);
14 | return { update, destroy };
15 | }
16 |
--------------------------------------------------------------------------------
/src/lib/layouts/Form/Form.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
8 |
9 |
28 |
--------------------------------------------------------------------------------
/src/www/app.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | %sveltekit.head%
11 |
12 |
13 |
14 |