From 6a33c504c6d54d2c59ff9150b56af6f9e4321838 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Tue, 23 Sep 2025 18:42:24 +0800 Subject: [PATCH] Removed old files --- .astro/content-assets.mjs | 1 - .astro/content-modules.mjs | 1 - .astro/content.d.ts | 199 ----------------------- .astro/data-store.json | 1 - .astro/settings.json | 5 - .astro/types.d.ts | 2 - fwt/Optimizers/OptimizeBackground.tsx | 17 -- fwt/Optimizers/OptimizeImage.tsx | 21 --- fwt/Optimizers/OptimizeLogo.tsx | 34 ---- fwt/components/Background.tsx | 50 ------ fwt/components/Box.tsx | 19 --- fwt/components/Button.tsx | 83 ---------- fwt/components/Column.tsx | 18 --- fwt/components/Copyright.tsx | 14 -- fwt/components/Display.tsx | 41 ----- fwt/components/Footer.tsx | 16 -- fwt/components/Form.tsx | 16 -- fwt/components/HTML.tsx | 46 ------ fwt/components/Image.tsx | 19 --- fwt/components/Input.tsx | 27 ---- fwt/components/Link.tsx | 17 -- fwt/components/Logo.tsx | 19 --- fwt/components/Modal.tsx | 72 --------- fwt/components/ModalButton.tsx | 44 ----- fwt/components/Navbar.tsx | 17 -- fwt/components/Padding.tsx | 13 -- fwt/components/Page.tsx | 20 --- fwt/components/Row.tsx | 24 --- fwt/images/background.avif | Bin 6186 -> 0 bytes fwt/images/background.webp | Bin 13288 -> 0 bytes fwt/images/logo.avif | Bin 4056 -> 0 bytes fwt/images/logo.webp | Bin 6994 -> 0 bytes fwt/images/no-background.webp | Bin 11314 -> 0 bytes fwt/images/pat-alcala.avif | Bin 2193 -> 0 bytes fwt/images/pat-alcala.webp | Bin 2164 -> 0 bytes fwt/images/sample.avif | Bin 3017 -> 0 bytes fwt/images/sample.webp | Bin 3978 -> 0 bytes fwt/index.ts | 23 --- fwt/styles/Background.sass | 1 - fwt/styles/Box.sass | 6 - fwt/styles/Button.sass | 223 -------------------------- fwt/styles/Column.sass | 39 ----- fwt/styles/Footer.sass | 13 -- fwt/styles/Form.sass | 0 fwt/styles/HTML.sass | 25 --- fwt/styles/Input.sass | 27 ---- fwt/styles/Link.sass | 3 - fwt/styles/Modal.sass | 20 --- fwt/styles/Navbar.sass | 7 - fwt/styles/Page.sass | 13 -- fwt/styles/Row.sass | 47 ------ fwt/styles/Viewport.sass | 1 - 52 files changed, 1304 deletions(-) delete mode 100644 .astro/content-assets.mjs delete mode 100644 .astro/content-modules.mjs delete mode 100644 .astro/content.d.ts delete mode 100644 .astro/data-store.json delete mode 100644 .astro/settings.json delete mode 100644 .astro/types.d.ts delete mode 100644 fwt/Optimizers/OptimizeBackground.tsx delete mode 100644 fwt/Optimizers/OptimizeImage.tsx delete mode 100644 fwt/Optimizers/OptimizeLogo.tsx delete mode 100644 fwt/components/Background.tsx delete mode 100644 fwt/components/Box.tsx delete mode 100644 fwt/components/Button.tsx delete mode 100644 fwt/components/Column.tsx delete mode 100644 fwt/components/Copyright.tsx delete mode 100644 fwt/components/Display.tsx delete mode 100644 fwt/components/Footer.tsx delete mode 100644 fwt/components/Form.tsx delete mode 100644 fwt/components/HTML.tsx delete mode 100644 fwt/components/Image.tsx delete mode 100644 fwt/components/Input.tsx delete mode 100644 fwt/components/Link.tsx delete mode 100644 fwt/components/Logo.tsx delete mode 100644 fwt/components/Modal.tsx delete mode 100644 fwt/components/ModalButton.tsx delete mode 100644 fwt/components/Navbar.tsx delete mode 100644 fwt/components/Padding.tsx delete mode 100644 fwt/components/Page.tsx delete mode 100644 fwt/components/Row.tsx delete mode 100644 fwt/images/background.avif delete mode 100644 fwt/images/background.webp delete mode 100644 fwt/images/logo.avif delete mode 100644 fwt/images/logo.webp delete mode 100644 fwt/images/no-background.webp delete mode 100644 fwt/images/pat-alcala.avif delete mode 100644 fwt/images/pat-alcala.webp delete mode 100644 fwt/images/sample.avif delete mode 100644 fwt/images/sample.webp delete mode 100644 fwt/index.ts delete mode 100644 fwt/styles/Background.sass delete mode 100644 fwt/styles/Box.sass delete mode 100644 fwt/styles/Button.sass delete mode 100644 fwt/styles/Column.sass delete mode 100644 fwt/styles/Footer.sass delete mode 100644 fwt/styles/Form.sass delete mode 100644 fwt/styles/HTML.sass delete mode 100644 fwt/styles/Input.sass delete mode 100644 fwt/styles/Link.sass delete mode 100644 fwt/styles/Modal.sass delete mode 100644 fwt/styles/Navbar.sass delete mode 100644 fwt/styles/Page.sass delete mode 100644 fwt/styles/Row.sass delete mode 100644 fwt/styles/Viewport.sass diff --git a/.astro/content-assets.mjs b/.astro/content-assets.mjs deleted file mode 100644 index 2b8b823..0000000 --- a/.astro/content-assets.mjs +++ /dev/null @@ -1 +0,0 @@ -export default new Map(); \ No newline at end of file diff --git a/.astro/content-modules.mjs b/.astro/content-modules.mjs deleted file mode 100644 index 2b8b823..0000000 --- a/.astro/content-modules.mjs +++ /dev/null @@ -1 +0,0 @@ -export default new Map(); \ No newline at end of file diff --git a/.astro/content.d.ts b/.astro/content.d.ts deleted file mode 100644 index c0082cc..0000000 --- a/.astro/content.d.ts +++ /dev/null @@ -1,199 +0,0 @@ -declare module 'astro:content' { - export interface RenderResult { - Content: import('astro/runtime/server/index.js').AstroComponentFactory; - headings: import('astro').MarkdownHeading[]; - remarkPluginFrontmatter: Record; - } - interface Render { - '.md': Promise; - } - - export interface RenderedContent { - html: string; - metadata?: { - imagePaths: Array; - [key: string]: unknown; - }; - } -} - -declare module 'astro:content' { - type Flatten = T extends { [K: string]: infer U } ? U : never; - - export type CollectionKey = keyof AnyEntryMap; - export type CollectionEntry = Flatten; - - export type ContentCollectionKey = keyof ContentEntryMap; - export type DataCollectionKey = keyof DataEntryMap; - - type AllValuesOf = T extends any ? T[keyof T] : never; - type ValidContentEntrySlug = AllValuesOf< - ContentEntryMap[C] - >['slug']; - - export type ReferenceDataEntry< - C extends CollectionKey, - E extends keyof DataEntryMap[C] = string, - > = { - collection: C; - id: E; - }; - export type ReferenceContentEntry< - C extends keyof ContentEntryMap, - E extends ValidContentEntrySlug | (string & {}) = string, - > = { - collection: C; - slug: E; - }; - export type ReferenceLiveEntry = { - collection: C; - id: string; - }; - - /** @deprecated Use `getEntry` instead. */ - export function getEntryBySlug< - C extends keyof ContentEntryMap, - E extends ValidContentEntrySlug | (string & {}), - >( - collection: C, - // Note that this has to accept a regular string too, for SSR - entrySlug: E, - ): E extends ValidContentEntrySlug - ? Promise> - : Promise | undefined>; - - /** @deprecated Use `getEntry` instead. */ - export function getDataEntryById( - collection: C, - entryId: E, - ): Promise>; - - export function getCollection>( - collection: C, - filter?: (entry: CollectionEntry) => entry is E, - ): Promise; - export function getCollection( - collection: C, - filter?: (entry: CollectionEntry) => unknown, - ): Promise[]>; - - export function getLiveCollection( - collection: C, - filter?: LiveLoaderCollectionFilterType, - ): Promise< - import('astro').LiveDataCollectionResult, LiveLoaderErrorType> - >; - - export function getEntry< - C extends keyof ContentEntryMap, - E extends ValidContentEntrySlug | (string & {}), - >( - entry: ReferenceContentEntry, - ): E extends ValidContentEntrySlug - ? Promise> - : Promise | undefined>; - export function getEntry< - C extends keyof DataEntryMap, - E extends keyof DataEntryMap[C] | (string & {}), - >( - entry: ReferenceDataEntry, - ): E extends keyof DataEntryMap[C] - ? Promise - : Promise | undefined>; - export function getEntry< - C extends keyof ContentEntryMap, - E extends ValidContentEntrySlug | (string & {}), - >( - collection: C, - slug: E, - ): E extends ValidContentEntrySlug - ? Promise> - : Promise | undefined>; - export function getEntry< - C extends keyof DataEntryMap, - E extends keyof DataEntryMap[C] | (string & {}), - >( - collection: C, - id: E, - ): E extends keyof DataEntryMap[C] - ? string extends keyof DataEntryMap[C] - ? Promise | undefined - : Promise - : Promise | undefined>; - export function getLiveEntry( - collection: C, - filter: string | LiveLoaderEntryFilterType, - ): Promise, LiveLoaderErrorType>>; - - /** Resolve an array of entry references from the same collection */ - export function getEntries( - entries: ReferenceContentEntry>[], - ): Promise[]>; - export function getEntries( - entries: ReferenceDataEntry[], - ): Promise[]>; - - export function render( - entry: AnyEntryMap[C][string], - ): Promise; - - export function reference( - collection: C, - ): import('astro/zod').ZodEffects< - import('astro/zod').ZodString, - C extends keyof ContentEntryMap - ? ReferenceContentEntry> - : ReferenceDataEntry - >; - // Allow generic `string` to avoid excessive type errors in the config - // if `dev` is not running to update as you edit. - // Invalid collection names will be caught at build time. - export function reference( - collection: C, - ): import('astro/zod').ZodEffects; - - type ReturnTypeOrOriginal = T extends (...args: any[]) => infer R ? R : T; - type InferEntrySchema = import('astro/zod').infer< - ReturnTypeOrOriginal['schema']> - >; - - type ContentEntryMap = { - - }; - - type DataEntryMap = { - - }; - - type AnyEntryMap = ContentEntryMap & DataEntryMap; - - type ExtractLoaderTypes = T extends import('astro/loaders').LiveLoader< - infer TData, - infer TEntryFilter, - infer TCollectionFilter, - infer TError - > - ? { data: TData; entryFilter: TEntryFilter; collectionFilter: TCollectionFilter; error: TError } - : { data: never; entryFilter: never; collectionFilter: never; error: never }; - type ExtractDataType = ExtractLoaderTypes['data']; - type ExtractEntryFilterType = ExtractLoaderTypes['entryFilter']; - type ExtractCollectionFilterType = ExtractLoaderTypes['collectionFilter']; - type ExtractErrorType = ExtractLoaderTypes['error']; - - type LiveLoaderDataType = - LiveContentConfig['collections'][C]['schema'] extends undefined - ? ExtractDataType - : import('astro/zod').infer< - Exclude - >; - type LiveLoaderEntryFilterType = - ExtractEntryFilterType; - type LiveLoaderCollectionFilterType = - ExtractCollectionFilterType; - type LiveLoaderErrorType = ExtractErrorType< - LiveContentConfig['collections'][C]['loader'] - >; - - export type ContentConfig = typeof import("../src/content.config.mjs"); - export type LiveContentConfig = never; -} diff --git a/.astro/data-store.json b/.astro/data-store.json deleted file mode 100644 index 888bd1b..0000000 --- a/.astro/data-store.json +++ /dev/null @@ -1 +0,0 @@ -[["Map",1,2],"meta::meta",["Map",3,4,5,6],"astro-version","5.13.8","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"http://localhost:4321\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_fwt\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"never\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"prefetch\":true,\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false,\"staticImportMetaEnv\":false,\"chromeDevtoolsWorkspace\":false},\"legacy\":{\"collections\":false}}"] \ No newline at end of file diff --git a/.astro/settings.json b/.astro/settings.json deleted file mode 100644 index a787bf4..0000000 --- a/.astro/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "_variables": { - "lastUpdateCheck": 1758157364090 - } -} \ No newline at end of file diff --git a/.astro/types.d.ts b/.astro/types.d.ts deleted file mode 100644 index 03d7cc4..0000000 --- a/.astro/types.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -/// -/// \ No newline at end of file diff --git a/fwt/Optimizers/OptimizeBackground.tsx b/fwt/Optimizers/OptimizeBackground.tsx deleted file mode 100644 index 1c27caf..0000000 --- a/fwt/Optimizers/OptimizeBackground.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import sharp from 'sharp' - -const convertBackground = async () => { - const inputSrc = 'src/assets/images/background.png' - const webpOutput = 'fwt/images/background.webp' - const avifOutput = 'fwt/images/background.avif' - - const avifBuffer = await sharp(inputSrc).avif({ quality: 60 }).resize(1920).toBuffer() - await sharp(avifBuffer).toFile(avifOutput) - - const webpBuffer = await sharp(inputSrc).webp({ quality: 75 }).resize(1920).toBuffer() - await sharp(webpBuffer).toFile(webpOutput) -} - -export default () => { - convertBackground() -} diff --git a/fwt/Optimizers/OptimizeImage.tsx b/fwt/Optimizers/OptimizeImage.tsx deleted file mode 100644 index 00afd77..0000000 --- a/fwt/Optimizers/OptimizeImage.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import sharp from 'sharp' - -interface Props { - src: string - size?: number -} - -const convertImage = async (props: Props) => { - const avifOutputPath = `fwt/images/${props.src.split('.').slice(0, -1).join('.')}.avif` - const webpOutputPath = `fwt/images/${props.src.split('.').slice(0, -1).join('.')}.webp` - - const avifBuffer = await sharp(`src/assets/images/${props.src}`).avif({ quality: 60 }).resize(props.size).toBuffer() - await sharp(avifBuffer).toFile(avifOutputPath) - - const webpBuffer = await sharp(`src/assets/images/${props.src}`).webp({ quality: 75 }).resize(props.size).toBuffer() - await sharp(webpBuffer).toFile(webpOutputPath) -} - -export default (props: Props) => { - convertImage(props) -} diff --git a/fwt/Optimizers/OptimizeLogo.tsx b/fwt/Optimizers/OptimizeLogo.tsx deleted file mode 100644 index f948031..0000000 --- a/fwt/Optimizers/OptimizeLogo.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import sharp from 'sharp' - -interface Props { - size?: number - favicon?: boolean -} - -const convertLogo = async (props: Props) => { - const inputSrc = 'src/assets/images/logo.png' - const webpImage = 'fwt/images/logo.webp' - const avifImage = 'fwt/images/logo.avif' - - const avifBuffer = await sharp(inputSrc).avif({ quality: 60 }).resize(props.size).toBuffer() - await sharp(avifBuffer).toFile(avifImage) - - const webpBuffer = await sharp(inputSrc).webp({ quality: 75 }).resize(props.size).toBuffer() - await sharp(webpBuffer).toFile(webpImage) -} - -const generateFavicon = async (props: Props) => { - const inputSrc = 'src/assets/images/logo.png' - const favicon = 'public/favicon.png' - - const faviconBuffer = await sharp(inputSrc).png({ quality: 90 }).resize(50).toBuffer() - await sharp(faviconBuffer).toFile(favicon) -} - -export default (props: Props) => { - convertLogo(props) - - if (props.favicon) { - generateFavicon(props) - } -} diff --git a/fwt/components/Background.tsx b/fwt/components/Background.tsx deleted file mode 100644 index e10af59..0000000 --- a/fwt/components/Background.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import '../styles/Background.sass' -import { Show, createSignal } from 'solid-js' -import fs from 'fs' -import webpPath from '../images/background.webp' -import avifPath from '../images/background.avif' -import noBackground from '../images/no-background.webp' - -interface Props { - image?: boolean - color?: string -} - -let [imageLoaded, setImageLoaded] = createSignal(false) - -const checkBackground = () => { - if (!fs.existsSync(avifPath.src) && !fs.existsSync(webpPath.src)) { - setImageLoaded(true) - } else { - setImageLoaded(false) - } -} - -export default (props: Props) => { - checkBackground() - - return ( - <> - - - - - - - An image background - - - - - - An alternative background if found no image background - - - - - -
- - - ) -} diff --git a/fwt/components/Box.tsx b/fwt/components/Box.tsx deleted file mode 100644 index d27815f..0000000 --- a/fwt/components/Box.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import '../styles/Box.sass' -import { type JSXElement, createMemo } from 'solid-js' - -interface Props { - thickness: number - color?: string - children: JSXElement - curved?: boolean -} - -export default (props: Props) => { - const boxClass = createMemo(() => (props.curved ? 'curvedbox' : 'box')) - - return ( -
- {props.children} -
- ) -} diff --git a/fwt/components/Button.tsx b/fwt/components/Button.tsx deleted file mode 100644 index 0ac4e8c..0000000 --- a/fwt/components/Button.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import '../styles/Button.sass' -import { Show, Switch, Match } from 'solid-js' - -interface Props { - label?: string - to?: string - onClick?: () => void - edges?: 'curved' | 'rounded' | 'flat' - design?: 'bu-primary' | 'bu-link' | 'bu-info' | 'bu-success' | 'bu-warning' | 'bu-danger' | 'bu-dark' | 'bu-light' | 'bu-text' | 'bu-ghost' | 'bo-primary' | 'bo-secondary' | 'bo-success' | 'bo-danger' | 'bo-warning' | 'bo-info' | 'bo-light' | 'bo-dark' | 'bo-link' - submit?: boolean - newtab?: boolean -} - -const getBorderRadius = (edge: Props['edges']) => { - switch (edge) { - case 'curved': - return 'border-radius: 6px' - case 'rounded': - return 'border-radius: 32px' - case 'flat': - return 'border-radius: 0' - default: - return 'border-radius: 0' - } -} - -export default (props: Props) => { - const borderRadius = getBorderRadius(props.edges) - - return ( - <> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) -} diff --git a/fwt/components/Column.tsx b/fwt/components/Column.tsx deleted file mode 100644 index e683a7c..0000000 --- a/fwt/components/Column.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import '../styles/Column.sass' -import type { JSXElement } from 'solid-js' - -interface Props { - children: JSXElement - content?: 'top' | 'center' | 'right' | 'split' | 'spaced' - gap?: number -} - -export default (props: Props) => { - return ( - <> -
- {props.children} -
- - ) -} diff --git a/fwt/components/Copyright.tsx b/fwt/components/Copyright.tsx deleted file mode 100644 index b8338d7..0000000 --- a/fwt/components/Copyright.tsx +++ /dev/null @@ -1,14 +0,0 @@ -interface Props { - year: string - name: string -} - -export default (props: Props) => { - return ( - <> - - Copyright © {props.year} {props.name} All Rights Reserved. - - - ) -} diff --git a/fwt/components/Display.tsx b/fwt/components/Display.tsx deleted file mode 100644 index 3f78103..0000000 --- a/fwt/components/Display.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import '../styles/Viewport.sass' -import { type JSXElement, Switch, Match } from 'solid-js' - -interface Props { - children: JSXElement - desktop?: boolean - tablet?: boolean - mobile?: boolean -} - -export default (props: Props) => { - return ( - <> - - -
{props.children}
-
- - -
{props.children}
-
- - -
{props.children}
-
- - -
{props.children}
-
- - -
{props.children}
-
- - -
{props.children}
-
-
- - ) -} diff --git a/fwt/components/Footer.tsx b/fwt/components/Footer.tsx deleted file mode 100644 index 0f00944..0000000 --- a/fwt/components/Footer.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import '../styles/Footer.sass' -import type { JSXElement } from 'solid-js' - -interface Props { - children: JSXElement -} - -export default (props: Props) => { - return ( - <> -
- {props.children} -
- - ) -} diff --git a/fwt/components/Form.tsx b/fwt/components/Form.tsx deleted file mode 100644 index 28c00a9..0000000 --- a/fwt/components/Form.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import '../styles/Form.sass' -import type { JSXElement } from 'solid-js' - -interface Props { - children: JSXElement -} - -export default (props: Props) => { - return ( - <> -
- {props.children} -
- - ) -} diff --git a/fwt/components/HTML.tsx b/fwt/components/HTML.tsx deleted file mode 100644 index dda61e9..0000000 --- a/fwt/components/HTML.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import '../styles/HTML.sass' -import { type JSXElement, Show } from 'solid-js' -import background1 from '../images/background.avif' -import background2 from '../images/background.webp' - -interface Props { - title: string - name: string - description: string - children: JSXElement - font?: 'roboto' | 'inter' | 'montserrat' | 'open-sans' | 'public-sans' - preloadBackground?: boolean - author: string -} - -export default (props: Props) => { - return ( - <> - - - - - - - - - - - - - - - - - - - - - {props.title} - - - {props.children} - - - ) -} diff --git a/fwt/components/Image.tsx b/fwt/components/Image.tsx deleted file mode 100644 index d885641..0000000 --- a/fwt/components/Image.tsx +++ /dev/null @@ -1,19 +0,0 @@ -interface Props { - avif: string - webp: string - size?: number - alt?: string - radius?: number -} - -export default (props: Props) => { - return ( - <> - - - - {props.alt} - - - ) -} diff --git a/fwt/components/Input.tsx b/fwt/components/Input.tsx deleted file mode 100644 index 2ff9a6f..0000000 --- a/fwt/components/Input.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import '../styles/Input.sass' -import { createSignal } from 'solid-js' - -interface Props { - placeholder?: string - value?: string - onChange?: (value: string) => void -} - -export default (props: Props) => { - const [inputValue, setInputValue] = createSignal(props.value || '') - - const handleChange = (event: Event) => { - const target = event.target as HTMLInputElement - const newValue = target.value - setInputValue(newValue) - if (props.onChange) { - props.onChange(newValue) - } - } - - return ( - <> - - - ) -} diff --git a/fwt/components/Link.tsx b/fwt/components/Link.tsx deleted file mode 100644 index 75b0b4f..0000000 --- a/fwt/components/Link.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import '../styles/Link.sass' - -interface Props { - to: string - children?: any - newtab?: boolean -} - -export default (props: Props) => { - return ( - <> - - {props.children} - - - ) -} diff --git a/fwt/components/Logo.tsx b/fwt/components/Logo.tsx deleted file mode 100644 index ba1c8d6..0000000 --- a/fwt/components/Logo.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import webpPath from '../images/logo.webp' -import avifPath from '../images/logo.avif' - -interface Props { - size?: number - alt?: string -} - -export default (props: Props) => { - return ( - <> - - - - logo - - - ) -} diff --git a/fwt/components/Modal.tsx b/fwt/components/Modal.tsx deleted file mode 100644 index ada5eb5..0000000 --- a/fwt/components/Modal.tsx +++ /dev/null @@ -1,72 +0,0 @@ -// - -import '../styles/Modal.sass' -import { type JSXElement, Show, createSignal } from 'solid-js' -import gsap from 'gsap' -import Button from './Button' - -interface Props { - children: JSXElement - background?: string - color?: string - border?: string -} - -export default (props: Props) => { - let dialogRef!: HTMLDivElement - - const [open, setOpen] = createSignal(false) - - const openHandler = () => { - gsap.to(dialogRef, { - duration: 0, - display: 'flex', - ease: 'power2.out', - }) - } - - const closeHandler = () => { - gsap.to(dialogRef, { - duration: 0, - display: 'none', - ease: 'power2.out', - }) - } - - return ( - <> - - - ) -} diff --git a/fwt/components/ModalButton.tsx b/fwt/components/ModalButton.tsx deleted file mode 100644 index 00ed1e8..0000000 --- a/fwt/components/ModalButton.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import '../styles/Button.sass' -import { Show, Switch, Match } from 'solid-js' - -interface Props { - label?: string - onClick?: () => void - edges?: 'curved' | 'rounded' | 'flat' - design?: 'bu-primary' | 'bu-link' | 'bu-info' | 'bu-success' | 'bu-warning' | 'bu-danger' | 'bu-dark' | 'bu-light' | 'bu-text' | 'bu-ghost' | 'bo-primary' | 'bo-secondary' | 'bo-success' | 'bo-danger' | 'bo-warning' | 'bo-info' | 'bo-light' | 'bo-dark' | 'bo-link' -} - -const getBorderRadius = (edge: Props['edges']) => { - switch (edge) { - case 'curved': - return 'border-radius: 6px' - case 'rounded': - return 'border-radius: 32px' - case 'flat': - return 'border-radius: 0' - default: - return 'border-radius: 0' - } -} - -export default (props: Props) => { - const borderRadius = getBorderRadius(props.edges) - - return ( - <> - - - - - - - - - - - ) -} diff --git a/fwt/components/Navbar.tsx b/fwt/components/Navbar.tsx deleted file mode 100644 index f87864b..0000000 --- a/fwt/components/Navbar.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import '../styles/Navbar.sass' -import Row from './Row' - -interface Props { - transparent?: boolean - children: HTMLElement -} - -export default (props: Props) => { - return ( - <> - - - ) -} diff --git a/fwt/components/Padding.tsx b/fwt/components/Padding.tsx deleted file mode 100644 index b18c8f6..0000000 --- a/fwt/components/Padding.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { type JSXElement } from 'solid-js' - -interface Props { - left: number - right: number - top?: number - bottom?: number - children: JSXElement -} - -export default (props: Props) => { - return
{props.children}
-} diff --git a/fwt/components/Page.tsx b/fwt/components/Page.tsx deleted file mode 100644 index de14c7d..0000000 --- a/fwt/components/Page.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import '../styles/Page.sass' -import { Show } from 'solid-js' - -interface Props { - children?: any - alignment?: 'row' | 'column' -} - -export default (props: Props) => { - return ( - <> - -
{props.children}
-
- -
{props.children}
-
- - ) -} diff --git a/fwt/components/Row.tsx b/fwt/components/Row.tsx deleted file mode 100644 index d560e8b..0000000 --- a/fwt/components/Row.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import '../styles/Row.sass' -import { Show, type JSXElement } from 'solid-js' - -interface Props { - children: JSXElement - content?: 'left' | 'center' | 'right' | 'split' | 'spaced' | 'even' - gap?: number -} - -export default (props: Props) => { - return ( - <> - -
- {props.children} -
-
- - -
{props.children}
-
- - ) -} diff --git a/fwt/images/background.avif b/fwt/images/background.avif deleted file mode 100644 index c3a3fad59d682cb837a4d85deebe632719d7cc24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6186 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 diff --git a/fwt/images/background.webp b/fwt/images/background.webp deleted file mode 100644 index da9ba89a3b2cd2f04216f65d8c5b10c90f8cd49f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13288 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 diff --git a/fwt/images/logo.avif b/fwt/images/logo.avif deleted file mode 100644 index 019df1db1be45ef5eec67e1595ac5f4da0bf2f99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4056 zcmYLLXEYpK6JARYeYNO4h)yDEym}Cwh@NHHSS+i>ie93N^6I^JqO-c_T?mpON{C*g zuJ*0uyyu&9?wxs_ndjU)_s<;w0Kfos^*~s>g+T!rgTtW0cQG7hfx%b^xV5Xr9gi_q z8!LO~zaapCfI(dUi~sW^2$(DU55U6gPhj?rkUOL(3jhM{7ywrMUk?Bf4q`Zr5u5$T z06j5K90qgvbB#Y)Dh#mxQ-)DnycH6@Q~aOAWd0*R!Vt~~OfnpXfH-12k;PkK1%H-5 zT1uD;!un2$u>s7A#Vj%e3<k9bn!Qbb(ayha6>BG(QeKTl5m9e zn?IYpBm@RQNV<5qxLU(qBr!EGdzgi@hopr)!sgF=F~Sh=KLJLH=^oo3hz$VZ1Oe{_ zV+cB!v-RILF~?!V_ID+B4?&_1x3X|02N2vBXFOb`kyVh(7ePHB2Vj3-(UG0K6};@p zD<+QXB8yMeD&#$#Hns|CVR$jS4G1SkqpLWA&4G9w{KMON6wjRkR=+059Z?T`BD&r&_rpBI;+k;?{y6y{%Tu1HzC%$iVBd(m?{v}^^GSdlJo<(F$K z=k`q4j0e)d@sTxB$^9?dtG*V)DXDkkw}Y3#cu5%o;jhtEwOP#zU%<$pWc?ILLXs7VCZhvA4E#&=rpUi>d<&$7`fmz2e79E0Q3incV*+Gjro& z1wOFAp$VM2#wuPkZU*n$P#yF&bn+ibqG&_+IX(x{ixCC#Y1*No-|Mrw^Kds9$$d(o;d_Pg=wE+r#kDvTaB6VE@uWT-%NKF1r;C#(@ zHqbPb#XYZMn`kn@^(lL^xb2IWCIrPSJKKY(<>Qyp$#x5L`_|e+A;cPH3j5znBlF@xt=M4fEf+RnBmLc)&VEM)f2*oVhtF z3fqc(aw%;u6e|fABwjsr$8+l?Xu%r;LFADI%U4I&yWNcoz^vk55&WXxYi{_y86*%- z9q3L=sxFBhm8WMUKUkz|NUgM@E+Iw%-w`!WUV;MsV1u42J!d3Te{B*E~)IZr~QFzKcyXS9m&9nKxiJS63CZor zPL+&w=*5!uuf8Zjkx-Z@$1@Z9e_&LOcgl$G$ z5S2wDPJ3Tgh>bnIvD$ccWl3<)9_%TcFv{Bmw+~npyI!7rK=kR6lB=D0D-Zvm(Lq}d_($6L~C8eVrGJzzLd~`cJvt5=rqCN8i*Y4yxKym96{NP zQ+z#{DZJfWhh_>+m{#qG*aGpow=gjX!1+pkuHlx<#W=g(pZwk9co>00u5Q}F0izmvlAH#j(+TZa=SKW`sZ!br<+P@KUv8|gUXF%qg zxOHur!MOp8!c7ocCo27Y4*AkVd3u;HwoJO5v7bc^eys6p7x;c8;$hqBo1N@Hgrt`s zLxUH4QhHh1zE49&xL0xA8GUO@i+#(PF4%KFY4WkZRJ0it8&t^)HFtIx0zKoiW&f~l zi+z=J!|NXx!V$DG0)l~u6eMPsJ>mANM@f|$XQ_~dvk}U?IxMKSK&vgGn#cFJ(_+Ff zDxs3Am~&r8mDc`XluIHB;X*L5dWdT>rk#b~G$WrHUC9+HF(3kj$@CJZ0JSwJGMfP*R91f7(b~k_7g|O|4CezIfQuGgyO2h<^yqtIEZs%itF5 zU==~UsZ2$7eE#wFDWA1|wRcA^$AWdD3n^$%8wl0e{;5v1+kLLu^J@$0`aRI%U2rel zu3Y`1>tD7mTsUE|k#w0WRbxcdYp3&A0AGr9R*zyc6*bA zk}~e`CE`Y0DrgSanQ1Fa_8G5#p=wod?t==X}M_4GyEfdqBzCX$`qX;yr64TyxMllTrNm%QJg)434V>X7Mc*+*u9-1bpb zTT*eENFoj9*L=_QJlp)(4d=#^eeZjj8_%q z=vT5&!;gDx!|fS|o{e}yGw?|lq7pM$!<&V_zWSk`;9Q&>&1nwoUtU)8vvK7t4h{RF zAz#8Xv^8;%RIj7BB61P$zZ?mUdtXrfR>PXL=)So`*GGGsTnCP3tsZDxQdbX)7#EF1 z>+P@+L__Pcjl?SLwqs|zW{ZV_a?*5LjHhM~-PSecVbe)&(a~ztsm}>mf-ImnKfh0( zCoiizU^}Jfq0SLCPq_iZEFjVPaua zz=R1XQ0*|1H5yQDVRg7N`toV0U`o1kORFulhPirA`p16XX@l3BXGlNCBR|wZ}{$DE$`u0=KMo^7gp+Hv1&= zw`0Rv9?Ke=`AF0QY2L9ObbZ8qMCnbmW?r`-|7*Ss9U7b7L2@)N^kO`yE4QUS zX=ufIj_gER$TP#O`Et$T^Ndsji1h~~y7k*Aeb->3n!u(keE{mSMHNl`?e>^ZMWD?g zC8vQw0rw*Po6~e~FCNpS*NW~ZCBLEtYG#4t#-qgd@ZAvEi1y>6sLf!?6(sBArsnGE zJ)DGbpYsd}b`{h4Mqo-qFB2cZF*$IV@QeokS}YsL^?D7u=K z5B}T%wHs30V0OMdXTbZCAn;w2XH`o)yP3}g{|8EIjdXcnZ;l}#c?_Z5)mMqWniV}l zY+v?YPOqytC|{(wh)~goWH@ELGne;k`+R2TduszK*<-x>8{2!HYzz*C`|5pB)XQN| z-WP#^vcU{BGHUb{W8Q^tygUFuMh8U+)Q6m?4hb{=Z6Y($^MQ9BsVO=1cGG*7bJw1Y zw80076`C>y^vap8?2iV2U15e|P{fY&0bzCn#o#17PPjro%2GIfN{kNX78qmWzTzI-orGrfZmKQWSL6-2}_U6S>Ws(J);%K@GnbE-{CVMyGl zk(USYo%}PDv8L^F7pc-39J3Y9lrzyV#chU3y~Yg zX+5tqSVx-9O#IT$Cv$J#bA`)eFI@*3%pi|Tb2rHAi|pZ$0|@!FzXCrUMH0~!sx&z5 zhio2S5=RDJq{v8LeB1A>42Wf!(Fp^mxG5Vph092)b@;+dj~C4}%gRyR)*tIk<`Xp~ zaM03=`X@#Tmh;7ptV9rr{P2~hB=hx;2V}`u+rJI*kx6kl?BFNh1cH-H)*mx#4+_N| zZw+K#J$@)k4XdcaYr(f0)|bGQub~~>b2`+_*cuBF`UdT07r@2;@T_#1Dy!CD?)@wG zYU3Q9ET50_L97GJ>pl!oI)L{Y9x*;wNy4n!6TCL~6zPg#BPITn0jh+N+(5#K$e^Rn zoiJ#ndrb8^#u}=r)w8r4C5f|y(!L`NijEkl{B^5f`~91}lp+$*;u+B_1w$#h`^~-b z$$|kVxx+smaWlT7ezT8OJm*{KlM*9kooXp8L>Q#&3dHgcStS1k?$hN45m<@q&<-tJ zv084J>sl(k>82CA`4C_u4`1?yJUIxaq(*j0tY9lQa3mcSd*!tSbYQU`dlZ9R+~J%o zwp10?4LEfVnC81AZ8w0d=v-B`T9Yw_C&fq`mX~EoYo_GOM+BUPF;&x&Lhns=15_H@ z&Pr+9rl)j=gYFeGdTaH(%e;KTwXj`?iuW?3CZS(#r+03;RmLfepFfO$_G~I5l%@<; zo2zG8@M|bomy8dRUMx6Ub?iGX$8;*?d@7nHwZKE>ui5%LjeaHl=>3}sWJa0>WsHKg z#T;)>(iYH$GVJY{1h7v<%pwsI!0Z3P6GSRGl( n9c$*!1}@C_(o7f=4zen&rxtxY(Ud0P+4(Y|!o9|=6z%sv2sUl% diff --git a/fwt/images/logo.webp b/fwt/images/logo.webp deleted file mode 100644 index cc106d8cbac72e8dfe3df14313ceb1a764f4a7f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6994 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 diff --git a/fwt/images/no-background.webp b/fwt/images/no-background.webp deleted file mode 100644 index 87c7f4ce63c6eb5267b948de19bed31154a1fb93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11314 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 z 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 diff --git a/fwt/images/sample.avif b/fwt/images/sample.avif deleted file mode 100644 index 78c62db8e9a25d314aded7d0bd30e050e076a817..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3017 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 kpgbYnVGExm1gW|D5pF diff --git a/fwt/index.ts b/fwt/index.ts deleted file mode 100644 index 011cbf1..0000000 --- a/fwt/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -export { default as Background } from './components/Background' -export { default as Box } from './components/Box' -export { default as Button } from './components/Button' -export { default as Column } from './components/Column' -export { default as Copyright } from './components/Copyright' -export { default as Footer } from './components/Footer' -export { default as Form } from './components/Form' -export { default as HTML } from './components/HTML' -export { default as Image } from './components/Image' -export { default as Link } from './components/Link' -export { default as Logo } from './components/Logo' -export { default as Navbar } from './components/Navbar' -export { default as Page } from './components/Page' -export { default as Row } from './components/Row' -export { default as Display } from './components/Display' -export { default as Padding } from './components/Padding' -export { default as Modal } from './components/Modal' -export { default as ModalButton } from './components/ModalButton' -export { default as Input } from './components/Input' - -export { default as OptimizeBackground } from './Optimizers/OptimizeBackground' -export { default as OptimizeImage } from './Optimizers/OptimizeImage' -export { default as OptimizeLogo } from './Optimizers/OptimizeLogo' diff --git a/fwt/styles/Background.sass b/fwt/styles/Background.sass deleted file mode 100644 index 1e0b5bc..0000000 --- a/fwt/styles/Background.sass +++ /dev/null @@ -1 +0,0 @@ -@use '/src/styles/classes.sass' diff --git a/fwt/styles/Box.sass b/fwt/styles/Box.sass deleted file mode 100644 index 17165bb..0000000 --- a/fwt/styles/Box.sass +++ /dev/null @@ -1,6 +0,0 @@ -.box - padding: 1rem - -.curvedbox - @extend .box - border-radius: 8px diff --git a/fwt/styles/Button.sass b/fwt/styles/Button.sass deleted file mode 100644 index 329ba1d..0000000 --- a/fwt/styles/Button.sass +++ /dev/null @@ -1,223 +0,0 @@ -@use '/src/styles/variables.sass' as vars -@use '/src/styles/fonts.sass' as fonts -@use 'sass:color' - -$bulmaPrimary: rgb(0, 235, 199) -$bulmaPrimaryText: rgb(0, 31, 26) -$bulmaLink: rgb(92, 111, 255) -$bulmaLinkText: rgb(245, 246, 255) -$bulmaInfo: rgb(128, 217, 255) -$bulmaInfoText: rgb(0, 36, 51) -$bulmaSuccess: rgb(91, 205, 154) -$bulmaSuccessText: rgb(10, 31, 21) -$bulmaWarning: rgb(255, 191, 41) -$bulmaWarningText: rgb(41, 29, 0) -$bulmaDanger: rgb(255, 128, 153) -$bulmaDangerText: rgb(26, 0, 5) -$bulmaLight: rgb(255, 255, 255) -$bulmaLightText: rgb(46, 51, 61) -$bulmaDark: rgb(57, 63, 76) -$bulmaDarkText: rgb(243, 244, 246) -$bulmaText: rgb(31, 34, 41) -$bulmaTextText: rgb(235, 236, 240) -$bulmaGhost: rgba(0,0,0,0) -$bulmaGhostText: rgb(66, 88, 255) - -$bootstrapTextLight: rgb(255, 255, 253) -$bootstrapTextDark: rgb(0, 0, 2) -$bootstrapTextLink: rgb(139, 185, 254) -$bootstrapPrimary: rgb(13, 110, 253) -$bootstrapSecondary: rgb(92, 99, 106) -$bootstrapSuccess: rgb(21, 115, 71) -$bootstrapDanger: rgb(187, 45, 59) -$bootstrapWarning: rgb(255, 202, 44) -$bootstrapInfo: rgb(49, 210, 242) -$bootstrapLight: rgb(211, 212, 213) -$bootstrapDark: rgb(33, 37, 41) - -.button - background-color: vars.$primaryColor - border: none - color: white - padding: 0.5rem 1.25rem - text-align: center - text-decoration: none - display: inline-block - font-size: 1rem - font-weight: 500 - cursor: pointer - transition: all 0.2s ease-out - - &:hover - background-color: color.adjust(vars.$primaryColor, $blackness: 20%) - - &:active - transform: scale(0.95) - -.bu-primary - @extend .button - font-family: fonts.$Inter - background-color: $bulmaPrimary - color: $bulmaPrimaryText - border: none - font-size: 1rem - border-radius: 0.375rem - font-weight: 500 - padding: 0.5rem 1.25rem - height: 2.5rem - - &:hover - background-color: color.adjust($bulmaPrimary, $lightness: 10%) - -.bu-link - @extend .bu-primary - background-color: $bulmaLink - color: $bulmaLinkText - - &:hover - background-color: color.adjust($bulmaLink, $lightness: 5%) - -.bu-info - @extend .bu-primary - background-color: $bulmaInfo - color: $bulmaInfoText - - &:hover - background-color: color.adjust($bulmaInfo, $lightness: 5%) - -.bu-success - @extend .bu-primary - background-color: $bulmaSuccess - color: $bulmaSuccessText - - &:hover - background-color: color.adjust($bulmaSuccess, $lightness: 5%) - -.bu-warning - @extend .bu-primary - background-color: $bulmaWarning - color: $bulmaWarningText - - &:hover - background-color: color.adjust($bulmaWarning, $lightness: 5%) - -.bu-danger - @extend .bu-primary - background-color: $bulmaDanger - color: $bulmaDangerText - - &:hover - background-color: color.adjust($bulmaDanger, $lightness: 5%) - -.bu-light - @extend .bu-primary - background-color: $bulmaLight - color: $bulmaLightText - - &:hover - background-color: color.adjust($bulmaLight, $lightness: 5%) - -.bu-dark - @extend .bu-primary - background-color: $bulmaDark - color: $bulmaDarkText - - &:hover - background-color: color.adjust($bulmaDark, $lightness: 5%) - -.bu-text - @extend .bu-primary - background-color: rgba(0,0,0,0) - color: $bulmaTextText - text-decoration: underline - - &:hover - background-color: hsl(221,14%,14%) - -.bu-ghost - @extend .bu-primary - background-color: $bulmaGhost - color: $bulmaGhostText - - &:hover - background-color: transparent - text-decoration: underline - -.bo-primary - @extend .button - font-family: 'Segoe UI', fonts.$Roboto - background-color: $bootstrapPrimary - color: $bootstrapTextLight - border: none - font-size: 1rem - border-radius: 0.375rem - font-weight: 400 - padding: 0.5rem 1.25rem - height: 2.5rem - margin: 0.25rem 0.125rem - - &:hover - background-color: color.adjust($bootstrapPrimary, $blackness: 10%) - -.bo-secondary - @extend .bo-primary - background-color: $bootstrapSecondary - - &:hover - background-color: color.adjust($bootstrapSecondary, $blackness: 10%) - -.bo-success - @extend .bo-primary - background-color: $bootstrapSuccess - - &:hover - background-color: color.adjust($bootstrapSuccess, $blackness: 10%) - -.bo-danger - @extend .bo-primary - background-color: $bootstrapDanger - - &:hover - background-color: color.adjust($bootstrapDanger, $blackness: 10%) - -.bo-warning - @extend .bo-primary - background-color: $bootstrapWarning - color: $bootstrapTextDark - - &:hover - background-color: color.adjust($bootstrapWarning, $lightness: 5%) - -.bo-info - @extend .bo-primary - background-color: $bootstrapInfo - color: $bootstrapTextDark - - &:hover - background-color: color.adjust($bootstrapInfo, $lightness: 5%) - -.bo-light - @extend .bo-primary - background-color: $bootstrapLight - color: $bootstrapTextDark - - &:hover - background-color: color.adjust($bootstrapLight, $blackness: 10%) - -.bo-dark - @extend .bo-primary - background-color: $bootstrapDark - // color: $bootstrapTextDark - - &:hover - background-color: color.adjust($bootstrapDark, $lightness: 10%) - -.bo-link - @extend .bo-primary - background-color: transparent - color: $bootstrapTextLink - text-decoration: underline - - &:hover - color: color.adjust($bootstrapTextLink, $lightness: 5%) - background-color: transparent diff --git a/fwt/styles/Column.sass b/fwt/styles/Column.sass deleted file mode 100644 index b26f108..0000000 --- a/fwt/styles/Column.sass +++ /dev/null @@ -1,39 +0,0 @@ -.column-top - display: flex - flex-direction: column - flex-wrap: wrap - justify-content: flex-start - align-items: center - align-content: center - -.column-center - display: flex - flex-direction: column - flex-wrap: wrap - justify-content: center - align-items: center - align-content: center - -.column-right - display: flex - flex-direction: column - flex-wrap: wrap - justify-content: flex-end - align-items: center - align-content: center - -.column-split - display: flex - flex-direction: column - flex-wrap: wrap - justify-content: space-between - align-items: center - align-content: center - -.column-spaced - display: flex - flex-direction: column - flex-wrap: wrap - justify-content: space-around - align-items: center - align-content: center diff --git a/fwt/styles/Footer.sass b/fwt/styles/Footer.sass deleted file mode 100644 index 0215b16..0000000 --- a/fwt/styles/Footer.sass +++ /dev/null @@ -1,13 +0,0 @@ -@use '/src/styles/breakpoint.sass' as view - -.footer - padding: 1rem 0 - margin: 0 2rem - position: fixed - bottom: 0 - width: 100% - opacity: 0.8 - font-size: 1rem - - @media only screen and (max-width: view.$tablet) - font-size: 0.75rem diff --git a/fwt/styles/Form.sass b/fwt/styles/Form.sass deleted file mode 100644 index e69de29..0000000 diff --git a/fwt/styles/HTML.sass b/fwt/styles/HTML.sass deleted file mode 100644 index 92e9d1c..0000000 --- a/fwt/styles/HTML.sass +++ /dev/null @@ -1,25 +0,0 @@ -@use '/src/styles/variables.sass' as vars -@use '/src/styles/fonts.sass' as fonts - -.body - color: vars.$textColor - -.inter - @extend .body - font-family: fonts.$Inter - -.roboto - @extend .body - font-family: fonts.$Roboto - -.montserrat - @extend .body - font-family: fonts.$Montserrat - -.open-sans - @extend .body - font-family: fonts.$OpenSans - -.public-sans - @extend .body - font-family: fonts.$PublicSans diff --git a/fwt/styles/Input.sass b/fwt/styles/Input.sass deleted file mode 100644 index 391937c..0000000 --- a/fwt/styles/Input.sass +++ /dev/null @@ -1,27 +0,0 @@ -.input - font-size: 1rem - padding: 0.5rem 1rem - width: 100% - border: 2px solid #ccc - border-radius: 4px - outline: none - transition: border-color 0.3s, box-shadow 0.3s - - &:focus - border-color: #3377AC - box-shadow: 0 0 5px rgba(51, 119, 168, 0.3) - - &::placeholder - color: #888 - font-style: italic - - &:disabled - background-color: #f0f0f0 - border-color: #ddd - - &--error - border-color: #ff4d4f - box-shadow: 0 0 5px rgba(255, 77, 79, 0.3) - - &:focus - border-color: #e81123 diff --git a/fwt/styles/Link.sass b/fwt/styles/Link.sass deleted file mode 100644 index efc3b4f..0000000 --- a/fwt/styles/Link.sass +++ /dev/null @@ -1,3 +0,0 @@ -a - text-decoration: none - color: inherit diff --git a/fwt/styles/Modal.sass b/fwt/styles/Modal.sass deleted file mode 100644 index 9f8368d..0000000 --- a/fwt/styles/Modal.sass +++ /dev/null @@ -1,20 +0,0 @@ -@use '/src/styles/variables.sass' as vars -@use 'sass:color' - -.modal - display: flex - justify-content: center - align-items: center - position: fixed - top: 0 - left: 0 - width: 100% - height: 100% - backdrop-filter: blur(20px) - background-color: rgba(color.adjust(vars.$background, $blackness: 5%), 0.6) - z-index: 999 - - &__content - border-radius: 8px - padding: 2rem - position: relative diff --git a/fwt/styles/Navbar.sass b/fwt/styles/Navbar.sass deleted file mode 100644 index edbda91..0000000 --- a/fwt/styles/Navbar.sass +++ /dev/null @@ -1,7 +0,0 @@ -.nav - position: fixed - top: 0 - width: 100% - padding: 1rem 0 - // margin: 5rem - diff --git a/fwt/styles/Page.sass b/fwt/styles/Page.sass deleted file mode 100644 index 4f6e85d..0000000 --- a/fwt/styles/Page.sass +++ /dev/null @@ -1,13 +0,0 @@ -.page - margin: 2rem - height: auto - min-height: 90vh - -.column - @extend .page - display: flex - flex-direction: column - -.row - @extend .column - flex-direction: row diff --git a/fwt/styles/Row.sass b/fwt/styles/Row.sass deleted file mode 100644 index 6162bbe..0000000 --- a/fwt/styles/Row.sass +++ /dev/null @@ -1,47 +0,0 @@ -.row-left - display: flex - flex-direction: row - flex-wrap: wrap - justify-content: flex-start - align-items: center - align-content: center - -.row-center - display: flex - flex-direction: row - flex-wrap: wrap - justify-content: center - align-items: center - align-content: center - -.row-right - display: flex - flex-direction: row - flex-wrap: wrap - justify-content: flex-end - align-items: center - align-content: center - -.row-split - display: flex - flex-direction: row - flex-wrap: wrap - justify-content: space-between - align-items: center - align-content: center - -.row-spaced - display: flex - flex-direction: row - flex-wrap: wrap - justify-content: space-around - align-items: center - align-content: center - -.row-even - display: flex - flex-direction: row - flex-wrap: wrap - justify-content: space-evenly - align-items: center - align-content: center diff --git a/fwt/styles/Viewport.sass b/fwt/styles/Viewport.sass deleted file mode 100644 index 6c4b1f0..0000000 --- a/fwt/styles/Viewport.sass +++ /dev/null @@ -1 +0,0 @@ -@use '/src/styles/breakpoint.sass'