Re-organized files
This commit is contained in:
parent
ea7be8fb39
commit
621faea4c2
53 changed files with 1434 additions and 1059 deletions
|
|
@ -1,9 +1,9 @@
|
||||||
import './Background.sass'
|
import '../styles/Background.sass'
|
||||||
import { Show, createSignal } from 'solid-js'
|
import { Show, createSignal } from 'solid-js'
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import webpPath from '../../images/background.webp'
|
import webpPath from '../images/background.webp'
|
||||||
import avifPath from '../../images/background.avif'
|
import avifPath from '../images/background.avif'
|
||||||
import noBackground from '../../images/no-background.webp'
|
import noBackground from '../images/no-background.webp'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
image?: boolean
|
image?: boolean
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import type { ImageMetadata } from 'astro'
|
import '../styles/Box.sass'
|
||||||
import './Box.sass'
|
import { type JSXElement, createMemo } from 'solid-js'
|
||||||
import { Show, type JSXElement, createMemo } from 'solid-js'
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
thickness: number
|
thickness: number
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import './Button.sass'
|
import '../styles/Button.sass'
|
||||||
import { Show, Switch, Match } from 'solid-js'
|
import { Show, Switch, Match } from 'solid-js'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
|
import '../styles/Column.sass'
|
||||||
import type { JSXElement } from 'solid-js'
|
import type { JSXElement } from 'solid-js'
|
||||||
import './Column.sass'
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
children: JSXElement
|
children: JSXElement
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import './Footer.sass'
|
import '../styles/Footer.sass'
|
||||||
import type { JSXElement } from 'solid-js'
|
import type { JSXElement } from 'solid-js'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import './Form.sass'
|
import '../styles/Form.sass'
|
||||||
import type { JSXElement } from 'solid-js'
|
import type { JSXElement } from 'solid-js'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import './HTML.sass'
|
import '../styles/HTML.sass'
|
||||||
import { type JSXElement, Show } from 'solid-js'
|
import { type JSXElement, Show } from 'solid-js'
|
||||||
import background1 from '../../images/background.avif'
|
import background1 from '../images/background.avif'
|
||||||
import background2 from '../../images/background.webp'
|
import background2 from '../images/background.webp'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
title: string
|
title: string
|
||||||
|
|
@ -22,15 +22,18 @@ export default (props: Props) => {
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
||||||
<meta name="name" content={props.name} />
|
<meta name="name" content={props.name} />
|
||||||
<meta name="description" content={props.description} />
|
<meta name="description" content={props.description} />
|
||||||
<meta property="og:title" content={props.name} />
|
<meta name="title" property="og:title" content={props.name} />
|
||||||
<meta property="og:description" content={props.description} />
|
<meta property="og:description" content={props.description} />
|
||||||
<meta property="og:type" content="website" />
|
<meta property="og:type" content="website" />
|
||||||
<link rel="icon" type="image/svg+xml" href="/favicon.png" />
|
<link rel="icon" type="image/svg+xml" href="/favicon.png" />
|
||||||
<link rel="preconnect" href="https://cdn.jsdelivr.net" />
|
<Show when={props.font}>
|
||||||
|
<link rel="preconnect" href="https://cdn.jsdelivr.net" />
|
||||||
|
</Show>
|
||||||
<Show when={props.preloadBackground}>
|
<Show when={props.preloadBackground}>
|
||||||
<link rel="preload" href={background1.src} as="image" type="image/svg+xml" />
|
<link rel="preload" href={background1.src} as="image" type="image/svg+xml" />
|
||||||
<link rel="preload" href={background2.src} as="image" type="image/svg+xml" />
|
<link rel="preload" href={background2.src} as="image" type="image/svg+xml" />
|
||||||
</Show>
|
</Show>
|
||||||
|
|
||||||
<title>{props.title}</title>
|
<title>{props.title}</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import './Input.sass'
|
import '../styles/Input.sass'
|
||||||
import { createSignal } from 'solid-js'
|
import { createSignal } from 'solid-js'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import './Link.sass'
|
import '../styles/Link.sass'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
to: string
|
to: string
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import webpPath from '../../images/logo.webp'
|
import webpPath from '../images/logo.webp'
|
||||||
import avifPath from '../../images/logo.avif'
|
import avifPath from '../images/logo.avif'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
size?: number
|
size?: number
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import './Navbar.sass'
|
import '../styles/Navbar.sass'
|
||||||
import { Show } from 'solid-js'
|
import Row from './Row'
|
||||||
import Row from '../Row/Row'
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
transparent?: boolean
|
transparent?: boolean
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import './Page.sass'
|
import '../styles/Page.sass'
|
||||||
import { Show } from 'solid-js'
|
import { Show } from 'solid-js'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import './Row.sass'
|
import '../styles/Row.sass'
|
||||||
import { Show, type JSXElement } from 'solid-js'
|
import { Show, type JSXElement } from 'solid-js'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
fwt/images/sample.avif
Normal file
BIN
fwt/images/sample.avif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
BIN
fwt/images/sample.webp
Normal file
BIN
fwt/images/sample.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
18
fwt/index.ts
Normal file
18
fwt/index.ts
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
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 OptimizeBackground } from './Optimizers/OptimizeBackground'
|
||||||
|
export { default as OptimizeImage } from './Optimizers/OptimizeImage'
|
||||||
|
export { default as OptimizeLogo } from './Optimizers/OptimizeLogo'
|
||||||
18
package.json
18
package.json
|
|
@ -9,12 +9,12 @@
|
||||||
"astro": "astro"
|
"astro": "astro"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/solid-js": "^5.1.0",
|
"@astrojs/solid-js": "^5.1.1",
|
||||||
"@fontsource-variable/inter": "^5.2.5",
|
"@fontsource-variable/inter": "^5.2.6",
|
||||||
"@fontsource-variable/montserrat": "^5.2.5",
|
"@fontsource-variable/montserrat": "^5.2.7",
|
||||||
"@kobalte/core": "^0.13.10",
|
"@kobalte/core": "^0.13.11",
|
||||||
"astro": "^5.8.2",
|
"astro": "^5.13.7",
|
||||||
"astro-compressor": "^1.0.0",
|
"astro-compressor": "^1.1.2",
|
||||||
"astro-robots-txt": "^1.0.0",
|
"astro-robots-txt": "^1.0.0",
|
||||||
"colord": "^2.9.3",
|
"colord": "^2.9.3",
|
||||||
"crypto-js": "^4.2.0",
|
"crypto-js": "^4.2.0",
|
||||||
|
|
@ -22,12 +22,12 @@
|
||||||
"lightningcss": "^1.30.1",
|
"lightningcss": "^1.30.1",
|
||||||
"monaco-editor": "^0.52.2",
|
"monaco-editor": "^0.52.2",
|
||||||
"nanostores": "^1.0.1",
|
"nanostores": "^1.0.1",
|
||||||
"sharp": "^0.34.2",
|
"sharp": "^0.34.3",
|
||||||
"solid-icons": "^1.1.0",
|
"solid-icons": "^1.1.0",
|
||||||
"solid-js": "^1.9.7"
|
"solid-js": "^1.9.9"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/crypto-js": "^4.2.2",
|
"@types/crypto-js": "^4.2.2",
|
||||||
"sass-embedded": "^1.89.1"
|
"sass-embedded": "^1.92.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
2204
pnpm-lock.yaml
generated
2204
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
|
|
@ -3,7 +3,7 @@ Description=AIO Tools
|
||||||
|
|
||||||
[Container]
|
[Container]
|
||||||
ContainerName=aio-tools
|
ContainerName=aio-tools
|
||||||
Image=localhost/aio-tools-_aio-tools
|
Image=localhost/aio-tools_aio-tools
|
||||||
PublishPort=8082:8080
|
PublishPort=8082:8080
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
@use '/src/assets/css/viewport.sass' as view
|
@use '/src/styles/breakpoint.sass' as view
|
||||||
|
@use '/src/styles/variables.sass' as vars
|
||||||
@use 'sass:color'
|
@use 'sass:color'
|
||||||
|
|
||||||
$backgroundColor: #1b7278
|
$backgroundColor: #1b7278
|
||||||
$backgroundColorHover: color.adjust($backgroundColor, $blackness: 11%)
|
$backgroundColorHover: color.adjust($backgroundColor, $blackness: 11%)
|
||||||
$coffeeColor:rgb(24, 83, 131)
|
|
||||||
$coffeeColorHover: color.adjust($coffeeColor, $lightness: 11%)
|
|
||||||
|
|
||||||
.button
|
.button
|
||||||
border: none
|
border: none
|
||||||
|
|
@ -31,12 +31,12 @@ $coffeeColorHover: color.adjust($coffeeColor, $lightness: 11%)
|
||||||
padding: 0.5rem 2rem
|
padding: 0.5rem 2rem
|
||||||
font-size: 1rem
|
font-size: 1rem
|
||||||
color: #ffffff
|
color: #ffffff
|
||||||
background-color: $coffeeColor
|
background-color: vars.$coffeeColor
|
||||||
cursor: pointer
|
cursor: pointer
|
||||||
transition: all 0.2s ease-out
|
transition: all 0.2s ease-out
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
background-color: $coffeeColorHover
|
background-color: vars.$coffeeColorHover
|
||||||
transform: scale(1.2)
|
transform: scale(1.2)
|
||||||
margin: 0 1rem 0 1rem
|
margin: 0 1rem 0 1rem
|
||||||
|
|
||||||
|
|
@ -49,4 +49,4 @@ $coffeeColorHover: color.adjust($coffeeColor, $lightness: 11%)
|
||||||
.coffee-icon
|
.coffee-icon
|
||||||
margin: 0 0.5rem 0 0
|
margin: 0 0.5rem 0 0
|
||||||
font-size: 1.5rem
|
font-size: 1.5rem
|
||||||
color:rgb(77, 107, 170)
|
color: rgb(230, 235, 246)
|
||||||
|
|
|
||||||
4
src/components/Content/Content.sass
Normal file
4
src/components/Content/Content.sass
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
.content
|
||||||
|
display: flex
|
||||||
|
justify-content: center
|
||||||
|
align-items: center
|
||||||
14
src/components/Content/Content.tsx
Normal file
14
src/components/Content/Content.tsx
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
import './Content.sass'
|
||||||
|
import { type JSXElement } from 'solid-js'
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
children: JSXElement
|
||||||
|
}
|
||||||
|
|
||||||
|
export default (props: Props) => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<section class="content">{props.children}</section>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
@use '/src/assets/css/viewport.sass' as view
|
@use '/src/styles/breakpoint.sass' as view
|
||||||
@use '/src/assets/css/variables.sass' as vars
|
@use '/src/styles/variables.sass' as vars
|
||||||
@use 'sass:color'
|
@use 'sass:color'
|
||||||
|
|
||||||
$text: vars.$textColor
|
$text: vars.$textColor
|
||||||
|
|
@ -31,16 +31,21 @@ $coffeeColor: #1a726e
|
||||||
|
|
||||||
@media screen and (max-width: view.$tablet)
|
@media screen and (max-width: view.$tablet)
|
||||||
display: block
|
display: block
|
||||||
border: 1px solid color.adjust($coffeeColor, $lightness: 20%)
|
border: 1px solid color.adjust(vars.$coffeeColor, $lightness: 10%)
|
||||||
border-radius: 16px
|
border-radius: 16px
|
||||||
cursor: pointer
|
cursor: pointer
|
||||||
padding: 0.5rem 1rem
|
padding: 0.5rem 1rem
|
||||||
margin-left: auto
|
margin-left: auto
|
||||||
background-color: $coffeeColor
|
background-color: vars.$coffeeColor
|
||||||
border-radius: 16px
|
border-radius: 16px
|
||||||
|
transition: background-color 0.2s ease-out
|
||||||
|
|
||||||
&:active
|
&:active
|
||||||
transform: scale(0.9)
|
transform: scale(0.9)
|
||||||
|
|
||||||
|
&:hover
|
||||||
|
background-color: color.adjust(vars.$coffeeColor, $blackness: 11%)
|
||||||
|
border: 1px solid color.adjust(vars.$coffeeColor, $blackness: 5%)
|
||||||
|
|
||||||
.buymeacoffee-button
|
.buymeacoffee-button
|
||||||
display: none
|
display: none
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
@use '/src/assets/css/variables.sass' as vars
|
@use '/src/styles/variables.sass' as vars
|
||||||
@use '/src/assets/css/viewport.sass' as view
|
@use '/src/styles/breakpoint.sass' as view
|
||||||
@use 'sass:color'
|
@use 'sass:color'
|
||||||
|
|
||||||
$toggleOffColor: rgba(126, 206, 241, 0.286)
|
$toggleOffColor: rgba(126, 206, 241, 0.286)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@use '/src/assets/css/variables.sass' as vars
|
@use '/src/styles/variables.sass' as vars
|
||||||
|
|
||||||
.title
|
.title
|
||||||
color: vars.$textColorTitle
|
color: vars.$textColorTitle
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
---
|
---
|
||||||
import Navbar from '../components/Navbar/Navbar.tsx'
|
import Navbar from '../components/Navbar/Navbar'
|
||||||
|
import { Background, HTML } from '../../fwt'
|
||||||
const { title } = Astro.props
|
const { title } = Astro.props
|
||||||
|
|
||||||
const websiteName = 'AIO Tools'
|
const websiteName = 'AIO Tools'
|
||||||
const websiteDescription = 'All-in-One Tools for Everyone'
|
const websiteDescription = 'All-in-One Tools for Everyone'
|
||||||
|
|
||||||
import Background from '../../fwt/components/Background/Background'
|
|
||||||
import HTML from '../../fwt/components/HTML/HTML'
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<HTML title={title} name={websiteName} description={websiteDescription} font="inter">
|
<HTML title={title} name={websiteName} description={websiteDescription} font="inter">
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import Layout from '../layouts/Layout.astro'
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="About - AIO Tools">
|
<Layout title="About - AIO Tools">
|
||||||
<main class="page">
|
<main class="about-page">
|
||||||
<h2 class="paragraph-title">About AIO Tools</h2>
|
<h2 class="paragraph-title">About AIO Tools</h2>
|
||||||
<p class="paragraph-content">This website aimed to provide useful tools for both offline and online usage.</p>
|
<p class="paragraph-content">This website aimed to provide useful tools for both offline and online usage.</p>
|
||||||
<p class="paragraph-content">
|
<p class="paragraph-content">
|
||||||
|
|
@ -12,8 +12,7 @@ import Layout from '../layouts/Layout.astro'
|
||||||
|
|
||||||
<h2 class="paragraph-title">Technologies</h2>
|
<h2 class="paragraph-title">Technologies</h2>
|
||||||
<p class="paragraph-content">
|
<p class="paragraph-content">
|
||||||
AIO Tools is made using <a target="_blank" href="https://astro.build/">AstroJS</a> and <a target="_blank" href="https://www.solidjs.com/">SolidJS</a> to achieve maximum performance and to provide a smooth user experience, and is styled with <a target="_blank" href="https://sass-lang.com/">SASS</a>. The UI Components are manually built from scratch for better flexibility. Third-party open-source libraries are used in some tools, you may find the complete list in the package.json file of the
|
AIO Tools is made using <strong>FWT (Fast Webapp Template)</strong>, a template that is built for performance, security, and flexibility. It was built on top of <a target="_blank" href="https://astro.build/">AstroJS</a> and <a target="_blank" href="https://www.solidjs.com/">SolidJS</a>. It provides a clean and modern design, with a focus on performance and user experience. The template includes a variety of components that can be used to build custom web applications quickly and easily.
|
||||||
repository.
|
|
||||||
</p>
|
</p>
|
||||||
</main>
|
</main>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|
@ -24,7 +23,7 @@ import Layout from '../layouts/Layout.astro'
|
||||||
@use '/src/styles/fonts.sass' as fonts
|
@use '/src/styles/fonts.sass' as fonts
|
||||||
@use 'sass:color'
|
@use 'sass:color'
|
||||||
|
|
||||||
.page
|
.about-page
|
||||||
padding: 4rem
|
padding: 4rem
|
||||||
display: flex
|
display: flex
|
||||||
flex-direction: column
|
flex-direction: column
|
||||||
|
|
|
||||||
|
|
@ -2,34 +2,15 @@
|
||||||
import Layout from '../layouts/Layout.astro'
|
import Layout from '../layouts/Layout.astro'
|
||||||
import ColorConverterComponent from '../components/PageComponents/Color-Converter/ColorConverterComponent.tsx'
|
import ColorConverterComponent from '../components/PageComponents/Color-Converter/ColorConverterComponent.tsx'
|
||||||
import PageTitle from '../components/PageTitle/PageTitle'
|
import PageTitle from '../components/PageTitle/PageTitle'
|
||||||
|
import Content from '../components/Content/Content'
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="Color Converter - AIO Tools">
|
<Layout title="Color Converter - AIO Tools">
|
||||||
<main class="page">
|
<main class="page">
|
||||||
<PageTitle title="Color Converter" description="Convert colors to any format. Color picker provided inside." />
|
<PageTitle title="Color Converter" description="Convert colors to any format. Color picker provided inside." />
|
||||||
|
|
||||||
<section class="content">
|
<Content>
|
||||||
<ColorConverterComponent client:visible />
|
<ColorConverterComponent client:visible />
|
||||||
</section>
|
</Content>
|
||||||
</main>
|
</main>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|
||||||
<style lang="sass">
|
|
||||||
@use '/src/styles/breakpoint.sass' as view
|
|
||||||
|
|
||||||
.page
|
|
||||||
text-align: center
|
|
||||||
margin: 4rem 0 0 0
|
|
||||||
transition: margin 0.4s ease-in-out
|
|
||||||
|
|
||||||
@media screen and (max-width: view.$tablet)
|
|
||||||
margin-top: 1rem
|
|
||||||
|
|
||||||
.content
|
|
||||||
display: flex
|
|
||||||
justify-content: center
|
|
||||||
align-items: center
|
|
||||||
// border: 1px solid #ffffff
|
|
||||||
// padding: 2rem
|
|
||||||
// border-radius: 8px
|
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -2,34 +2,15 @@
|
||||||
import Layout from '../layouts/Layout.astro'
|
import Layout from '../layouts/Layout.astro'
|
||||||
import HashGeneratorComponent from '../components/PageComponents/Hash-Generator/HashGeneratorComponent.tsx'
|
import HashGeneratorComponent from '../components/PageComponents/Hash-Generator/HashGeneratorComponent.tsx'
|
||||||
import PageTitle from '../components/PageTitle/PageTitle'
|
import PageTitle from '../components/PageTitle/PageTitle'
|
||||||
|
import Content from '../components/Content/Content'
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="Hash Generator - AIO Tools">
|
<Layout title="Hash Generator - AIO Tools">
|
||||||
<main class="page">
|
<main class="page">
|
||||||
<PageTitle title="Hash Generator" description="Convert text to multiple hash formats for secure data transmission." />
|
<PageTitle title="Hash Generator" description="Convert text to multiple hash formats for secure data transmission." />
|
||||||
|
|
||||||
<section class="content">
|
<Content>
|
||||||
<HashGeneratorComponent client:visible />
|
<HashGeneratorComponent client:visible />
|
||||||
</section>
|
</Content>
|
||||||
</main>
|
</main>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|
||||||
<style lang="sass">
|
|
||||||
@use '/src/styles/breakpoint.sass' as view
|
|
||||||
|
|
||||||
.page
|
|
||||||
text-align: center
|
|
||||||
margin: 4rem 0 0 0
|
|
||||||
transition: margin 0.4s ease-in-out
|
|
||||||
|
|
||||||
@media screen and (max-width: view.$tablet)
|
|
||||||
margin-top: 1rem
|
|
||||||
|
|
||||||
.content
|
|
||||||
display: flex
|
|
||||||
justify-content: center
|
|
||||||
align-items: center
|
|
||||||
// border: 1px solid #ffffff
|
|
||||||
// padding: 2rem
|
|
||||||
// border-radius: 8px
|
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,7 @@
|
||||||
---
|
---
|
||||||
import Layout from '../layouts/Layout.astro'
|
import Layout from '../layouts/Layout.astro'
|
||||||
import Card from '../components/Card/Card.jsx'
|
import Card from '../components/Card/Card.jsx'
|
||||||
import Logo from '../../fwt/components/Logo/Logo'
|
import { Logo, Link } from '../../fwt/'
|
||||||
import Link from '../../fwt/components/Link/Link'
|
|
||||||
import Footer from '../../fwt/components/Footer/Footer'
|
|
||||||
import Copyright from '../../fwt/components/Copyright/Copyright'
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="AIO Tools">
|
<Layout title="AIO Tools">
|
||||||
|
|
|
||||||
|
|
@ -2,31 +2,15 @@
|
||||||
import Layout from '../layouts/Layout.astro'
|
import Layout from '../layouts/Layout.astro'
|
||||||
import PasswordGeneratorComponent from '../components/PageComponents/Password-Generator/PasswordGeneratorComponent.tsx'
|
import PasswordGeneratorComponent from '../components/PageComponents/Password-Generator/PasswordGeneratorComponent.tsx'
|
||||||
import PageTitle from '../components/PageTitle/PageTitle'
|
import PageTitle from '../components/PageTitle/PageTitle'
|
||||||
|
import Content from '../components/Content/Content'
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="Password Generator - AIO Tools">
|
<Layout title="Password Generator - AIO Tools">
|
||||||
<main class="page">
|
<main class="page">
|
||||||
<PageTitle title="Password Generator" description="Generate a strong and secure password for your accounts online." />
|
<PageTitle title="Password Generator" description="Generate a strong and secure password for your accounts online." />
|
||||||
|
|
||||||
<section class="content">
|
<Content>
|
||||||
<PasswordGeneratorComponent client:load />
|
<PasswordGeneratorComponent client:visible />
|
||||||
</section>
|
</Content>
|
||||||
</main>
|
</main>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|
||||||
<style lang="sass">
|
|
||||||
@use '/src/styles/breakpoint.sass' as view
|
|
||||||
|
|
||||||
.page
|
|
||||||
text-align: center
|
|
||||||
margin: 4rem 0 0 0
|
|
||||||
transition: margin 0.4s ease-in-out
|
|
||||||
|
|
||||||
@media screen and (max-width: view.$tablet)
|
|
||||||
margin-top: 1rem
|
|
||||||
|
|
||||||
.content
|
|
||||||
display: flex
|
|
||||||
justify-content: center
|
|
||||||
align-items: center
|
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,18 @@
|
||||||
---
|
---
|
||||||
import Layout from '../layouts/Layout.astro'
|
import Layout from '../layouts/Layout.astro'
|
||||||
import PasswordManagerComponent from '../components/PageComponents/Password-Manager/PasswordManagerComponent.tsx'
|
import PasswordManagerComponent from '../components/PageComponents/Password-Manager/PasswordManagerComponent.tsx'
|
||||||
import PageTitle from '../components/PageTitle/PageTitle.tsx'
|
import PageTitle from '../components/PageTitle/PageTitle'
|
||||||
|
import Toolpage from '../components/Toolpage/Toolpage'
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="Password Manager - AIO Tools">
|
<Layout title="Password Manager - AIO Tools">
|
||||||
<main class="page">
|
<Toolpage>
|
||||||
<PageTitle title="Password Manager" description="Manage your passwords securely and privately. Recommended to be pair with Password Generator for best security." />
|
<PageTitle title="Password Manager" description="Manage your passwords securely and privately. Recommended to be pair with Password Generator for best security." />
|
||||||
|
|
||||||
<section class="content">
|
<section class="content">
|
||||||
<PasswordManagerComponent client:visible />
|
<PasswordManagerComponent client:visible />
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</Toolpage>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|
||||||
<style lang="sass">
|
<style lang="sass">
|
||||||
|
|
|
||||||
|
|
@ -1,36 +1,16 @@
|
||||||
---
|
---
|
||||||
import Layout from '../layouts/Layout.astro'
|
import Layout from '../layouts/Layout.astro'
|
||||||
import TextComparisonComponent from '../components/PageComponents/Text-Comparison/TextComparisonComponent.tsx'
|
import TextComparisonComponent from '../components/PageComponents/Text-Comparison/TextComparisonComponent'
|
||||||
import PageTitle from '../components/PageTitle/PageTitle.tsx'
|
import PageTitle from '../components/PageTitle/PageTitle'
|
||||||
|
import Content from '../components/Content/Content'
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="Text Comparison - AIO Tools">
|
<Layout title="Text Comparison - AIO Tools">
|
||||||
<main class="page">
|
<main class="page">
|
||||||
<PageTitle title="Text Comparison" description="Compare text side by side to detect changes easily." />
|
<PageTitle title="Text Comparison" description="Compare text side by side to detect changes easily." />
|
||||||
|
|
||||||
<section class="content">
|
<Content>
|
||||||
<TextComparisonComponent client:visible />
|
<TextComparisonComponent client:visible />
|
||||||
</section>
|
</Content>
|
||||||
</main>
|
</main>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|
||||||
<style lang="sass">
|
|
||||||
@use '/src/styles/breakpoint.sass' as view
|
|
||||||
|
|
||||||
.page
|
|
||||||
font-family: 'Inter', sans-serif
|
|
||||||
text-align: center
|
|
||||||
margin: 4rem 0 0 0
|
|
||||||
transition: margin 0.4s ease-in-out
|
|
||||||
|
|
||||||
@media screen and (max-width: view.$tablet)
|
|
||||||
margin-top: 1rem
|
|
||||||
|
|
||||||
.content
|
|
||||||
display: flex
|
|
||||||
justify-content: center
|
|
||||||
align-items: center
|
|
||||||
// border: 1px solid #ffffff
|
|
||||||
// padding: 2rem
|
|
||||||
// border-radius: 8px
|
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -69,3 +69,11 @@
|
||||||
|
|
||||||
@media only screen and (max-width: view.$mobile)
|
@media only screen and (max-width: view.$mobile)
|
||||||
display: block
|
display: block
|
||||||
|
|
||||||
|
.page
|
||||||
|
text-align: center
|
||||||
|
margin: 4rem 0 0 0
|
||||||
|
transition: margin 0.4s ease-in-out
|
||||||
|
|
||||||
|
@media screen and (max-width: view.$tablet)
|
||||||
|
margin-top: 1rem
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,21 @@
|
||||||
@use 'sass:color'
|
@use 'sass:color'
|
||||||
|
@use '/src/styles/fonts.sass' as fonts
|
||||||
|
|
||||||
$fontFamily: 'Inter', sans-serif
|
$fontFamily: fonts.$Inter
|
||||||
$background: #0f1a28
|
$background: #0f1a28
|
||||||
$textColor: color.adjust($background, $lightness: 80%)
|
$textColor: color.adjust($background, $lightness: 80%)
|
||||||
$textColorTitle: color.adjust($background, $lightness: 75%)
|
$textColorTitle: color.adjust($background, $lightness: 75%)
|
||||||
$borderRadius: 16px
|
$borderRadius: 16px
|
||||||
$componentBorder: 2px solid color.adjust($background, $lightness: 6%)
|
$componentBorder: 2px solid color.adjust($background, $lightness: 6%)
|
||||||
$componentBackground: color.adjust($background, $lightness: 1%)
|
$componentBackground: color.adjust($background, $lightness: 1%)
|
||||||
|
|
||||||
|
$coffeeColor: rgb(24, 83, 131)
|
||||||
|
$coffeeColorHover: color.adjust($coffeeColor, $lightness: 11%)
|
||||||
|
|
||||||
|
$primaryColor: #0075BB
|
||||||
|
$secondaryColor: #57687F
|
||||||
|
$accentColor: #00887C
|
||||||
|
$infoColor: #0082A4
|
||||||
|
$successColor: #009435
|
||||||
|
$warningColor: #E5B400
|
||||||
|
$errorColor: #E8595C
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue