commit 880f01daa947c02f06f4e497738883f93344ff8b Author: relaxed <> Date: Fri Aug 30 05:49:53 2024 +0500 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md new file mode 100644 index 0000000..f67a425 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# Fumas + +> svelte + tailwindcss minimal sytle ui lib + +add it with + +```sh +bun add -D git+https://git.ogkod.ru/root/fumas.git +``` + +and set up tailwind + +```js +export default { + content: [ + "./node_modules/fumas/src/ui/*.{js,svelte}", + ... + ] +} +``` diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000..5372e2f Binary files /dev/null and b/bun.lockb differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..5e4068f --- /dev/null +++ b/index.html @@ -0,0 +1,27 @@ + + + + + + + + fumas + + + + +
+ + + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..5696a2d --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions": { + "moduleResolution": "bundler", + "target": "ESNext", + "module": "ESNext", + /** + * svelte-preprocess cannot figure out whether you have + * a value or a type, so tell TypeScript to enforce using + * `import type` instead of `import` for Types. + */ + "verbatimModuleSyntax": true, + "isolatedModules": true, + "resolveJsonModule": true, + /** + * To have warnings / errors of the Svelte compiler at the + * correct position, enable source maps by default. + */ + "sourceMap": true, + "esModuleInterop": true, + "skipLibCheck": true, + /** + * Typecheck JS in `.svelte` and `.js` files by default. + * Disable this if you'd like to use dynamic types. + */ + "checkJs": true + }, + /** + * Use global.d.ts instead of compilerOptions.types + * to avoid limiting type declarations. + */ + "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"] +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..337a0e6 --- /dev/null +++ b/package.json @@ -0,0 +1,30 @@ +{ + "name": "fumas", + "main": "dist/index.js", + "svelte": "./dist/index.js", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.1.1", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.41", + "svelte": "^4.2.18", + "tailwindcss": "^3.4.10", + "vite": "^5.4.1" + }, + "svelte": "./src/ui/index.js", + "exports": { + ".": { + "svelte": "./src/ui/index.js", + "import": "./src/ui/index.js" + }, + "./package.json": "./package.json" + }, + "files": ["src"] +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/public/jbmv.ttf b/public/jbmv.ttf new file mode 100644 index 0000000..02bc07e Binary files /dev/null and b/public/jbmv.ttf differ diff --git a/src/App.svelte b/src/App.svelte new file mode 100644 index 0000000..0c6dec8 --- /dev/null +++ b/src/App.svelte @@ -0,0 +1,83 @@ + + + + + +
+ +

Fumas

+ +
+ +
+ + + + +
+ + +
+ +
+
+ + + + + + + + this is just a box + +

Icons

+ +

fumas/x.svg

+ + +

fumas/burger.svg

+ + +

fumas/arrow.svg

+ +
diff --git a/src/global.css b/src/global.css new file mode 100644 index 0000000..42ed6d7 --- /dev/null +++ b/src/global.css @@ -0,0 +1,42 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@font-face { + font-family: JetBrainsMono; + src: url(/jbmv.ttf); +} + +* { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + outline: none !important; + + font-family: JetBrainsMono; + + /* white theme */ + --w-bg: #ddd; + --w-text: #000; + --w-border: #000; + + --w-red: #fcc; + --w-green: #0f0; + --w-blue: #ccf; + --w-orange: #f80; + + /* dark theme */ + --b-bg: #000; + --b-text: #fff; + --b-border: #fff; + + --b-red: #800; + --b-green: #080; + --b-blue: #000066; + --b-orange: #f80; + +} diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..e69de29 diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..73c4fab --- /dev/null +++ b/src/main.js @@ -0,0 +1,8 @@ +import './global.css' +import App from './App.svelte' + +const app = new App({ + target: document.getElementById('app'), +}) + +export default app diff --git a/src/ui/Box.svelte b/src/ui/Box.svelte new file mode 100644 index 0000000..1f67753 --- /dev/null +++ b/src/ui/Box.svelte @@ -0,0 +1,16 @@ + + +
+ +
diff --git a/src/ui/Button.svelte b/src/ui/Button.svelte new file mode 100644 index 0000000..ff7c068 --- /dev/null +++ b/src/ui/Button.svelte @@ -0,0 +1,48 @@ + + +
+ +
diff --git a/src/ui/Dialog.svelte b/src/ui/Dialog.svelte new file mode 100644 index 0000000..fbd7a7d --- /dev/null +++ b/src/ui/Dialog.svelte @@ -0,0 +1,58 @@ + + +
+
+
+ {#if is_name_editable} + + {:else} +

+ {name} +

+ {/if} + +
+ +
+
diff --git a/src/ui/SideMenu.svelte b/src/ui/SideMenu.svelte new file mode 100644 index 0000000..34e6ab3 --- /dev/null +++ b/src/ui/SideMenu.svelte @@ -0,0 +1,50 @@ + + +
+
+
+

{name}

+ +
+ +
+ +
diff --git a/src/ui/ThemeSwitch.svelte b/src/ui/ThemeSwitch.svelte new file mode 100644 index 0000000..0e3a483 --- /dev/null +++ b/src/ui/ThemeSwitch.svelte @@ -0,0 +1,88 @@ + + +{#if !get(theme_switch_is_update)} +
+ + +
+
+
+
+{/if} diff --git a/src/ui/Window.svelte b/src/ui/Window.svelte new file mode 100644 index 0000000..a8e784c --- /dev/null +++ b/src/ui/Window.svelte @@ -0,0 +1,9 @@ +
+
+ +
+
diff --git a/src/ui/arrow.svg b/src/ui/arrow.svg new file mode 100644 index 0000000..21f29b8 --- /dev/null +++ b/src/ui/arrow.svg @@ -0,0 +1,17 @@ + + + arrow_up [#340] + Created with Sketch. + + + + + + + + + + + + + diff --git a/src/ui/burger.svg b/src/ui/burger.svg new file mode 100644 index 0000000..72418e8 --- /dev/null +++ b/src/ui/burger.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/ui/form/Input.svelte b/src/ui/form/Input.svelte new file mode 100644 index 0000000..9e21688 --- /dev/null +++ b/src/ui/form/Input.svelte @@ -0,0 +1,30 @@ + + +{#if type === "password"} + +{:else} + +{/if} diff --git a/src/ui/form/TextArea.svelte b/src/ui/form/TextArea.svelte new file mode 100644 index 0000000..9ad2f1b --- /dev/null +++ b/src/ui/form/TextArea.svelte @@ -0,0 +1,44 @@ + + + diff --git a/src/ui/index.js b/src/ui/index.js new file mode 100644 index 0000000..a0ea274 --- /dev/null +++ b/src/ui/index.js @@ -0,0 +1,12 @@ +export { default as ThemeSwitch } from "./ThemeSwitch.svelte" +export { default as Button } from "./Button.svelte" +export { default as Window } from "./Window.svelte" +export { default as Dialog } from "./Dialog.svelte" +export { default as SideMenu } from "./SideMenu.svelte" +export { default as Input } from "./form/Input.svelte" +export { default as TextArea } from "./form/TextArea.svelte" +export { default as Box } from "./Box.svelte" + +export { default as x } from "./x.svg" +export { default as burger } from "./burger.svg" +export { default as arrow } from "./arrow.svg" diff --git a/src/ui/state.js b/src/ui/state.js new file mode 100644 index 0000000..ba639af --- /dev/null +++ b/src/ui/state.js @@ -0,0 +1,6 @@ +import { writable } from "svelte/store"; + +export const theme_switch_is_resize = writable(false); +export const theme_switch_is_transparent = writable(false); +export const theme_switch_is_dark = writable(true); +export const theme_switch_is_update = writable(false); diff --git a/src/ui/x.svg b/src/ui/x.svg new file mode 100644 index 0000000..88bbb89 --- /dev/null +++ b/src/ui/x.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..4078e74 --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 0000000..b0683fd --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,7 @@ +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' + +export default { + // Consult https://svelte.dev/docs#compile-time-svelte-preprocess + // for more information about preprocessors + preprocess: vitePreprocess(), +} diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..8cd39e8 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,12 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{js,svelte}", + ], + darkMode: 'selector', + theme: { + extend: {}, + }, + plugins: [], +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..838f38b --- /dev/null +++ b/vite.config.js @@ -0,0 +1,12 @@ +import { defineConfig } from 'vite' +import { svelte } from '@sveltejs/vite-plugin-svelte' + +export default defineConfig({ + plugins: [svelte()], + server: { + host: true + }, + preview: { + host: true + } +})