feat: ✨ initial commit
Created (mostly) temporally website, forked from Org013/www.
15
.editorconfig
Normal file
@@ -0,0 +1,15 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = tab
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.{yml,yaml}]
|
||||
indent_style = space
|
||||
15
.eslintignore
Normal file
@@ -0,0 +1,15 @@
|
||||
.DS_Store
|
||||
node_modules
|
||||
/build
|
||||
/.svelte-kit
|
||||
/package
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
pnpm-lock.yaml
|
||||
/.husky
|
||||
/src/lib/components.d.ts
|
||||
/src/lib/imports.d.ts
|
||||
/.eslint-auto-import.json
|
||||
*.svg
|
||||
*.scss
|
||||
230
.eslintrc.cjs
Normal file
@@ -0,0 +1,230 @@
|
||||
/**
|
||||
* This will be in the future a independent eslint-config package. (Project).
|
||||
* [Readable project](https://github.com/orgs/Org013/projects/1)
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
root: true,
|
||||
extends: [
|
||||
'@antfu',
|
||||
'plugin:svelte/recommended',
|
||||
'./.eslintrc-auto-import.json',
|
||||
],
|
||||
parser: '@typescript-eslint/parser',
|
||||
plugins: ['@typescript-eslint', 'spellcheck'],
|
||||
parserOptions: {
|
||||
sourceType: 'module',
|
||||
ecmaVersion: 2020,
|
||||
extraFileExtensions: ['.svelte'],
|
||||
},
|
||||
env: {
|
||||
browser: true,
|
||||
es2017: true,
|
||||
node: true,
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: ['*.svelte'],
|
||||
parser: 'svelte-eslint-parser',
|
||||
parserOptions: {
|
||||
parser: '@typescript-eslint/parser',
|
||||
},
|
||||
rules: {
|
||||
'no-undef': ['warn'],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['*.json', '*.json5', '*.jsonc'],
|
||||
parser: 'jsonc-eslint-parser',
|
||||
rules: {
|
||||
'jsonc/array-bracket-spacing': ['error', 'never'],
|
||||
'jsonc/comma-dangle': ['error', 'never'],
|
||||
'jsonc/comma-style': ['error', 'last'],
|
||||
'jsonc/indent': ['error', 'tab'],
|
||||
'jsonc/key-spacing': ['error', { beforeColon: false, afterColon: true }],
|
||||
'jsonc/no-octal-escape': 'error',
|
||||
'jsonc/object-curly-newline': ['error', { multiline: true, consistent: true }],
|
||||
'jsonc/object-curly-spacing': ['error', 'always'],
|
||||
'jsonc/object-property-newline': ['error', { allowMultiplePropertiesPerLine: true }],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['*.yaml', '*.yml'],
|
||||
parser: 'yaml-eslint-parser',
|
||||
rules: {
|
||||
'spaced-comment': 'off',
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['package.json'],
|
||||
parser: 'jsonc-eslint-parser',
|
||||
rules: {
|
||||
'jsonc/sort-keys': [
|
||||
'error',
|
||||
{
|
||||
pathPattern: '^$',
|
||||
order: [
|
||||
'publisher',
|
||||
'name',
|
||||
'displayName',
|
||||
'type',
|
||||
'version',
|
||||
'private',
|
||||
'packageManager',
|
||||
'description',
|
||||
'author',
|
||||
'license',
|
||||
'funding',
|
||||
'homepage',
|
||||
'repository',
|
||||
'bugs',
|
||||
'keywords',
|
||||
'categories',
|
||||
'sideEffects',
|
||||
'exports',
|
||||
'main',
|
||||
'module',
|
||||
'unpkg',
|
||||
'jsdelivr',
|
||||
'types',
|
||||
'typesVersions',
|
||||
'bin',
|
||||
'icon',
|
||||
'files',
|
||||
'engines',
|
||||
'activationEvents',
|
||||
'contributes',
|
||||
'scripts',
|
||||
'peerDependencies',
|
||||
'peerDependenciesMeta',
|
||||
'dependencies',
|
||||
'optionalDependencies',
|
||||
'devDependencies',
|
||||
'pnpm',
|
||||
'overrides',
|
||||
'resolutions',
|
||||
'husky',
|
||||
'simple-git-hooks',
|
||||
'lint-staged',
|
||||
'eslintConfig',
|
||||
],
|
||||
},
|
||||
{
|
||||
pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies$',
|
||||
order: { type: 'asc' },
|
||||
},
|
||||
{
|
||||
pathPattern: '^exports.*$',
|
||||
order: [
|
||||
'types',
|
||||
'require',
|
||||
'import',
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['*.d.ts'],
|
||||
rules: {
|
||||
'import/no-duplicates': 'off',
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['*.js', '*.cjs', '*.jsx'],
|
||||
rules: {
|
||||
'@typescript-eslint/no-var-requires': 'off',
|
||||
'@typescript-eslint/no-require-imports': 'off',
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['*.ts', '*.tsx', '*.mts', '*.cts'],
|
||||
rules: {
|
||||
'no-void': ['error', { allowAsStatement: true }],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['scripts/**/*.*', 'cli.*'],
|
||||
rules: {
|
||||
'no-console': 'off',
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['*.test.ts', '*.test.js', '*.spec.ts', '*.spec.js'],
|
||||
rules: {
|
||||
'no-unused-expressions': 'off',
|
||||
'no-only-tests/no-only-tests': 'error',
|
||||
},
|
||||
},
|
||||
{
|
||||
// Code blocks in markdown file
|
||||
files: ['**/*.md/*.*'],
|
||||
rules: {
|
||||
'@typescript-eslint/no-redeclare': 'off',
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'@typescript-eslint/no-use-before-define': 'off',
|
||||
'@typescript-eslint/no-var-requires': 'off',
|
||||
'@typescript-eslint/comma-dangle': 'off',
|
||||
'@typescript-eslint/consistent-type-imports': 'off',
|
||||
'@typescript-eslint/no-namespace': 'off',
|
||||
'@typescript-eslint/no-require-imports': 'off',
|
||||
'import/no-unresolved': 'off',
|
||||
'unused-imports/no-unused-imports': 'off',
|
||||
'unused-imports/no-unused-vars': 'off',
|
||||
'no-alert': 'off',
|
||||
'no-console': 'off',
|
||||
'no-restricted-imports': 'off',
|
||||
'no-undef': 'off',
|
||||
'no-unused-expressions': 'off',
|
||||
'no-unused-vars': 'off',
|
||||
'antfu/no-cjs-exports': 'off',
|
||||
'antfu/no-ts-export-equal': 'off',
|
||||
},
|
||||
},
|
||||
],
|
||||
rules: {
|
||||
'@typescript-eslint/indent': ['error', 'tab'],
|
||||
'@typescript-eslint/semi': ['error', 'always'],
|
||||
'max-depth': ['error', 3],
|
||||
'max-nested-callbacks': ['error', 3],
|
||||
'complexity': ['error', 4],
|
||||
'no-tabs': ['error', { allowIndentationTabs: true }],
|
||||
'spellcheck/spell-checker': ['error', {
|
||||
skipWords: [
|
||||
'antfu',
|
||||
'eslintrc',
|
||||
'jsonc',
|
||||
'yml',
|
||||
'yaml',
|
||||
'unpkg',
|
||||
'jsdelivr',
|
||||
'pnpm',
|
||||
'ecma',
|
||||
'multiline',
|
||||
'ependencies',
|
||||
'redeclare',
|
||||
'namespace',
|
||||
'undef',
|
||||
'commitlint',
|
||||
'vite',
|
||||
'mdsvex',
|
||||
'sveltejs',
|
||||
'iconify',
|
||||
'poppins',
|
||||
'sveltekit',
|
||||
'filepath',
|
||||
'globals',
|
||||
'readdir',
|
||||
'fira',
|
||||
'radix',
|
||||
'safelist',
|
||||
'rehype',
|
||||
'nofollow',
|
||||
'noopener',
|
||||
'noreferrer',
|
||||
'duotone',
|
||||
],
|
||||
minLength: 4,
|
||||
}],
|
||||
},
|
||||
};
|
||||
BIN
.github/assets/013.png
vendored
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
64
.github/assets/013.svg
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="16.321503mm"
|
||||
height="16.321503mm"
|
||||
viewBox="0 0 16.321503 16.321503"
|
||||
version="1.1"
|
||||
id="svg222"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview224"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false" /><defs
|
||||
id="defs219"><style
|
||||
id="style1145">.cls-1{fill:#fff;stroke:#fff;stroke-miterlimit:10;stroke-width:9px;}.cls-2{fill:#111;}</style><style
|
||||
id="style1223">.cls-1{fill:#fff;}</style></defs><g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2"
|
||||
transform="translate(-66.718485,-6.2330502)"><g
|
||||
id="_013"
|
||||
data-name="013"
|
||||
transform="matrix(0.0446394,0,0,0.0446394,66.718484,6.2330502)"
|
||||
style="fill:#000000;stroke:#ffffff;stroke-opacity:1"
|
||||
inkscape:export-filename="013.svg"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"><rect
|
||||
class="cls-1"
|
||||
width="365.63"
|
||||
height="365.63"
|
||||
id="rect1149"
|
||||
x="0"
|
||||
y="0"
|
||||
style="fill:#111111;fill-opacity:1;stroke:none;stroke-width:9px;stroke-miterlimit:10;stroke-opacity:1"
|
||||
ry="182.815"
|
||||
inkscape:export-filename="013.svg"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96" /><polygon
|
||||
class="cls-2"
|
||||
points="151.65,197.77 164.39,186.57 130.4,149.58 117.66,160.77 "
|
||||
id="polygon1151"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /><rect
|
||||
class="cls-2"
|
||||
x="165.19"
|
||||
y="148.00999"
|
||||
width="17.129999"
|
||||
height="45.880001"
|
||||
id="rect1153"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /><polygon
|
||||
class="cls-2"
|
||||
points="252.13,217.54 221.5,166.02 251.76,166.02 251.76,149.27 191.73,149.27 222.37,200.81 113.5,200.87 113.51,217.62 "
|
||||
id="polygon1155"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
15
.github/workflows/deploy-preview.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
name: ▲ Deploy preview to Vercel
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
uses: loreddev/.github/.github/workflows/vercel-deploy.yml@main
|
||||
secrets: inherit
|
||||
with:
|
||||
production: false
|
||||
13
.github/workflows/deploy.yml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
name: ▲ Deploy to Vercel
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
uses: loreddev/.github/.github/workflows/vercel-deploy.yml@main
|
||||
secrets: inherit
|
||||
with:
|
||||
production: true
|
||||
14
.github/workflows/mirror.yml
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
name: 🪞 Repository Mirrors
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
mirror:
|
||||
uses: loreddev/.github/.github/workflows/mirrors.yml@main
|
||||
secrets: inherit
|
||||
with:
|
||||
codeberg-repo: https://codeberg.org/LoredDev/www
|
||||
14
.gitignore
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
.DS_Store
|
||||
node_modules
|
||||
/build
|
||||
/.svelte-kit
|
||||
/package
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
vite.config.js.timestamp-*
|
||||
vite.config.ts.timestamp-*
|
||||
.vercel
|
||||
/src/lib/imports.d.ts
|
||||
/src/lib/components.d.ts
|
||||
/.eslintrc-auto-import.json
|
||||
5
.husky/pre-commit
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env sh
|
||||
. "$(dirname -- "$0")/_/husky.sh"
|
||||
|
||||
pnpm dlx commitlint --edit ${1}
|
||||
pnpm dlx lint-staged
|
||||
4
.husky/prepare-commit-msg
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env sh
|
||||
. "$(dirname -- "$0")/_/husky.sh"
|
||||
|
||||
pnpm dlx devmoji -e --lint
|
||||
10
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"aaron-bond.better-comments",
|
||||
"editorconfig.editorconfig",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"lokalise.i18n-ally",
|
||||
"svelte.svelte-vscode",
|
||||
"antfu.unocss"
|
||||
]
|
||||
}
|
||||
10
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"prettier.enable": false,
|
||||
"editor.formatOnSave": false,
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": true
|
||||
},
|
||||
"svelte.plugin.svelte.compilerWarnings": {
|
||||
"missing-declaration": "ignore"
|
||||
}
|
||||
}
|
||||
427
LICENSE-CC-BY-SA-4.0
Normal file
@@ -0,0 +1,427 @@
|
||||
Attribution-ShareAlike 4.0 International
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
||||
does not provide legal services or legal advice. Distribution of
|
||||
Creative Commons public licenses does not create a lawyer-client or
|
||||
other relationship. Creative Commons makes its licenses and related
|
||||
information available on an "as-is" basis. Creative Commons gives no
|
||||
warranties regarding its licenses, any material licensed under their
|
||||
terms and conditions, or any related information. Creative Commons
|
||||
disclaims all liability for damages resulting from their use to the
|
||||
fullest extent possible.
|
||||
|
||||
Using Creative Commons Public Licenses
|
||||
|
||||
Creative Commons public licenses provide a standard set of terms and
|
||||
conditions that creators and other rights holders may use to share
|
||||
original works of authorship and other material subject to copyright
|
||||
and certain other rights specified in the public license below. The
|
||||
following considerations are for informational purposes only, are not
|
||||
exhaustive, and do not form part of our licenses.
|
||||
|
||||
Considerations for licensors: Our public licenses are
|
||||
intended for use by those authorized to give the public
|
||||
permission to use material in ways otherwise restricted by
|
||||
copyright and certain other rights. Our licenses are
|
||||
irrevocable. Licensors should read and understand the terms
|
||||
and conditions of the license they choose before applying it.
|
||||
Licensors should also secure all rights necessary before
|
||||
applying our licenses so that the public can reuse the
|
||||
material as expected. Licensors should clearly mark any
|
||||
material not subject to the license. This includes other CC-
|
||||
licensed material, or material used under an exception or
|
||||
limitation to copyright. More considerations for licensors:
|
||||
wiki.creativecommons.org/Considerations_for_licensors
|
||||
|
||||
Considerations for the public: By using one of our public
|
||||
licenses, a licensor grants the public permission to use the
|
||||
licensed material under specified terms and conditions. If
|
||||
the licensor's permission is not necessary for any reason--for
|
||||
example, because of any applicable exception or limitation to
|
||||
copyright--then that use is not regulated by the license. Our
|
||||
licenses grant only permissions under copyright and certain
|
||||
other rights that a licensor has authority to grant. Use of
|
||||
the licensed material may still be restricted for other
|
||||
reasons, including because others have copyright or other
|
||||
rights in the material. A licensor may make special requests,
|
||||
such as asking that all changes be marked or described.
|
||||
Although not required by our licenses, you are encouraged to
|
||||
respect those requests where reasonable. More considerations
|
||||
for the public:
|
||||
wiki.creativecommons.org/Considerations_for_licensees
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Attribution-ShareAlike 4.0 International Public
|
||||
License
|
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree
|
||||
to be bound by the terms and conditions of this Creative Commons
|
||||
Attribution-ShareAlike 4.0 International Public License ("Public
|
||||
License"). To the extent this Public License may be interpreted as a
|
||||
contract, You are granted the Licensed Rights in consideration of Your
|
||||
acceptance of these terms and conditions, and the Licensor grants You
|
||||
such rights in consideration of benefits the Licensor receives from
|
||||
making the Licensed Material available under these terms and
|
||||
conditions.
|
||||
|
||||
|
||||
Section 1 -- Definitions.
|
||||
|
||||
a. Adapted Material means material subject to Copyright and Similar
|
||||
Rights that is derived from or based upon the Licensed Material
|
||||
and in which the Licensed Material is translated, altered,
|
||||
arranged, transformed, or otherwise modified in a manner requiring
|
||||
permission under the Copyright and Similar Rights held by the
|
||||
Licensor. For purposes of this Public License, where the Licensed
|
||||
Material is a musical work, performance, or sound recording,
|
||||
Adapted Material is always produced where the Licensed Material is
|
||||
synched in timed relation with a moving image.
|
||||
|
||||
b. Adapter's License means the license You apply to Your Copyright
|
||||
and Similar Rights in Your contributions to Adapted Material in
|
||||
accordance with the terms and conditions of this Public License.
|
||||
|
||||
c. BY-SA Compatible License means a license listed at
|
||||
creativecommons.org/compatiblelicenses, approved by Creative
|
||||
Commons as essentially the equivalent of this Public License.
|
||||
|
||||
d. Copyright and Similar Rights means copyright and/or similar rights
|
||||
closely related to copyright including, without limitation,
|
||||
performance, broadcast, sound recording, and Sui Generis Database
|
||||
Rights, without regard to how the rights are labeled or
|
||||
categorized. For purposes of this Public License, the rights
|
||||
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
||||
Rights.
|
||||
|
||||
e. Effective Technological Measures means those measures that, in the
|
||||
absence of proper authority, may not be circumvented under laws
|
||||
fulfilling obligations under Article 11 of the WIPO Copyright
|
||||
Treaty adopted on December 20, 1996, and/or similar international
|
||||
agreements.
|
||||
|
||||
f. Exceptions and Limitations means fair use, fair dealing, and/or
|
||||
any other exception or limitation to Copyright and Similar Rights
|
||||
that applies to Your use of the Licensed Material.
|
||||
|
||||
g. License Elements means the license attributes listed in the name
|
||||
of a Creative Commons Public License. The License Elements of this
|
||||
Public License are Attribution and ShareAlike.
|
||||
|
||||
h. Licensed Material means the artistic or literary work, database,
|
||||
or other material to which the Licensor applied this Public
|
||||
License.
|
||||
|
||||
i. Licensed Rights means the rights granted to You subject to the
|
||||
terms and conditions of this Public License, which are limited to
|
||||
all Copyright and Similar Rights that apply to Your use of the
|
||||
Licensed Material and that the Licensor has authority to license.
|
||||
|
||||
j. Licensor means the individual(s) or entity(ies) granting rights
|
||||
under this Public License.
|
||||
|
||||
k. Share means to provide material to the public by any means or
|
||||
process that requires permission under the Licensed Rights, such
|
||||
as reproduction, public display, public performance, distribution,
|
||||
dissemination, communication, or importation, and to make material
|
||||
available to the public including in ways that members of the
|
||||
public may access the material from a place and at a time
|
||||
individually chosen by them.
|
||||
|
||||
l. Sui Generis Database Rights means rights other than copyright
|
||||
resulting from Directive 96/9/EC of the European Parliament and of
|
||||
the Council of 11 March 1996 on the legal protection of databases,
|
||||
as amended and/or succeeded, as well as other essentially
|
||||
equivalent rights anywhere in the world.
|
||||
|
||||
m. You means the individual or entity exercising the Licensed Rights
|
||||
under this Public License. Your has a corresponding meaning.
|
||||
|
||||
|
||||
Section 2 -- Scope.
|
||||
|
||||
a. License grant.
|
||||
|
||||
1. Subject to the terms and conditions of this Public License,
|
||||
the Licensor hereby grants You a worldwide, royalty-free,
|
||||
non-sublicensable, non-exclusive, irrevocable license to
|
||||
exercise the Licensed Rights in the Licensed Material to:
|
||||
|
||||
a. reproduce and Share the Licensed Material, in whole or
|
||||
in part; and
|
||||
|
||||
b. produce, reproduce, and Share Adapted Material.
|
||||
|
||||
2. Exceptions and Limitations. For the avoidance of doubt, where
|
||||
Exceptions and Limitations apply to Your use, this Public
|
||||
License does not apply, and You do not need to comply with
|
||||
its terms and conditions.
|
||||
|
||||
3. Term. The term of this Public License is specified in Section
|
||||
6(a).
|
||||
|
||||
4. Media and formats; technical modifications allowed. The
|
||||
Licensor authorizes You to exercise the Licensed Rights in
|
||||
all media and formats whether now known or hereafter created,
|
||||
and to make technical modifications necessary to do so. The
|
||||
Licensor waives and/or agrees not to assert any right or
|
||||
authority to forbid You from making technical modifications
|
||||
necessary to exercise the Licensed Rights, including
|
||||
technical modifications necessary to circumvent Effective
|
||||
Technological Measures. For purposes of this Public License,
|
||||
simply making modifications authorized by this Section 2(a)
|
||||
(4) never produces Adapted Material.
|
||||
|
||||
5. Downstream recipients.
|
||||
|
||||
a. Offer from the Licensor -- Licensed Material. Every
|
||||
recipient of the Licensed Material automatically
|
||||
receives an offer from the Licensor to exercise the
|
||||
Licensed Rights under the terms and conditions of this
|
||||
Public License.
|
||||
|
||||
b. Additional offer from the Licensor -- Adapted Material.
|
||||
Every recipient of Adapted Material from You
|
||||
automatically receives an offer from the Licensor to
|
||||
exercise the Licensed Rights in the Adapted Material
|
||||
under the conditions of the Adapter's License You apply.
|
||||
|
||||
c. No downstream restrictions. You may not offer or impose
|
||||
any additional or different terms or conditions on, or
|
||||
apply any Effective Technological Measures to, the
|
||||
Licensed Material if doing so restricts exercise of the
|
||||
Licensed Rights by any recipient of the Licensed
|
||||
Material.
|
||||
|
||||
6. No endorsement. Nothing in this Public License constitutes or
|
||||
may be construed as permission to assert or imply that You
|
||||
are, or that Your use of the Licensed Material is, connected
|
||||
with, or sponsored, endorsed, or granted official status by,
|
||||
the Licensor or others designated to receive attribution as
|
||||
provided in Section 3(a)(1)(A)(i).
|
||||
|
||||
b. Other rights.
|
||||
|
||||
1. Moral rights, such as the right of integrity, are not
|
||||
licensed under this Public License, nor are publicity,
|
||||
privacy, and/or other similar personality rights; however, to
|
||||
the extent possible, the Licensor waives and/or agrees not to
|
||||
assert any such rights held by the Licensor to the limited
|
||||
extent necessary to allow You to exercise the Licensed
|
||||
Rights, but not otherwise.
|
||||
|
||||
2. Patent and trademark rights are not licensed under this
|
||||
Public License.
|
||||
|
||||
3. To the extent possible, the Licensor waives any right to
|
||||
collect royalties from You for the exercise of the Licensed
|
||||
Rights, whether directly or through a collecting society
|
||||
under any voluntary or waivable statutory or compulsory
|
||||
licensing scheme. In all other cases the Licensor expressly
|
||||
reserves any right to collect such royalties.
|
||||
|
||||
|
||||
Section 3 -- License Conditions.
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the
|
||||
following conditions.
|
||||
|
||||
a. Attribution.
|
||||
|
||||
1. If You Share the Licensed Material (including in modified
|
||||
form), You must:
|
||||
|
||||
a. retain the following if it is supplied by the Licensor
|
||||
with the Licensed Material:
|
||||
|
||||
i. identification of the creator(s) of the Licensed
|
||||
Material and any others designated to receive
|
||||
attribution, in any reasonable manner requested by
|
||||
the Licensor (including by pseudonym if
|
||||
designated);
|
||||
|
||||
ii. a copyright notice;
|
||||
|
||||
iii. a notice that refers to this Public License;
|
||||
|
||||
iv. a notice that refers to the disclaimer of
|
||||
warranties;
|
||||
|
||||
v. a URI or hyperlink to the Licensed Material to the
|
||||
extent reasonably practicable;
|
||||
|
||||
b. indicate if You modified the Licensed Material and
|
||||
retain an indication of any previous modifications; and
|
||||
|
||||
c. indicate the Licensed Material is licensed under this
|
||||
Public License, and include the text of, or the URI or
|
||||
hyperlink to, this Public License.
|
||||
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any
|
||||
reasonable manner based on the medium, means, and context in
|
||||
which You Share the Licensed Material. For example, it may be
|
||||
reasonable to satisfy the conditions by providing a URI or
|
||||
hyperlink to a resource that includes the required
|
||||
information.
|
||||
|
||||
3. If requested by the Licensor, You must remove any of the
|
||||
information required by Section 3(a)(1)(A) to the extent
|
||||
reasonably practicable.
|
||||
|
||||
b. ShareAlike.
|
||||
|
||||
In addition to the conditions in Section 3(a), if You Share
|
||||
Adapted Material You produce, the following conditions also apply.
|
||||
|
||||
1. The Adapter's License You apply must be a Creative Commons
|
||||
license with the same License Elements, this version or
|
||||
later, or a BY-SA Compatible License.
|
||||
|
||||
2. You must include the text of, or the URI or hyperlink to, the
|
||||
Adapter's License You apply. You may satisfy this condition
|
||||
in any reasonable manner based on the medium, means, and
|
||||
context in which You Share Adapted Material.
|
||||
|
||||
3. You may not offer or impose any additional or different terms
|
||||
or conditions on, or apply any Effective Technological
|
||||
Measures to, Adapted Material that restrict exercise of the
|
||||
rights granted under the Adapter's License You apply.
|
||||
|
||||
|
||||
Section 4 -- Sui Generis Database Rights.
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that
|
||||
apply to Your use of the Licensed Material:
|
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
||||
to extract, reuse, reproduce, and Share all or a substantial
|
||||
portion of the contents of the database;
|
||||
|
||||
b. if You include all or a substantial portion of the database
|
||||
contents in a database in which You have Sui Generis Database
|
||||
Rights, then the database in which You have Sui Generis Database
|
||||
Rights (but not its individual contents) is Adapted Material,
|
||||
including for purposes of Section 3(b); and
|
||||
|
||||
c. You must comply with the conditions in Section 3(a) if You Share
|
||||
all or a substantial portion of the contents of the database.
|
||||
|
||||
For the avoidance of doubt, this Section 4 supplements and does not
|
||||
replace Your obligations under this Public License where the Licensed
|
||||
Rights include other Copyright and Similar Rights.
|
||||
|
||||
|
||||
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
|
||||
|
||||
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
|
||||
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
|
||||
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
|
||||
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
|
||||
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
|
||||
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
|
||||
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
|
||||
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
|
||||
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
|
||||
|
||||
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
|
||||
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
|
||||
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
|
||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
|
||||
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
|
||||
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
|
||||
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
|
||||
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
|
||||
|
||||
c. The disclaimer of warranties and limitation of liability provided
|
||||
above shall be interpreted in a manner that, to the extent
|
||||
possible, most closely approximates an absolute disclaimer and
|
||||
waiver of all liability.
|
||||
|
||||
|
||||
Section 6 -- Term and Termination.
|
||||
|
||||
a. This Public License applies for the term of the Copyright and
|
||||
Similar Rights licensed here. However, if You fail to comply with
|
||||
this Public License, then Your rights under this Public License
|
||||
terminate automatically.
|
||||
|
||||
b. Where Your right to use the Licensed Material has terminated under
|
||||
Section 6(a), it reinstates:
|
||||
|
||||
1. automatically as of the date the violation is cured, provided
|
||||
it is cured within 30 days of Your discovery of the
|
||||
violation; or
|
||||
|
||||
2. upon express reinstatement by the Licensor.
|
||||
|
||||
For the avoidance of doubt, this Section 6(b) does not affect any
|
||||
right the Licensor may have to seek remedies for Your violations
|
||||
of this Public License.
|
||||
|
||||
c. For the avoidance of doubt, the Licensor may also offer the
|
||||
Licensed Material under separate terms or conditions or stop
|
||||
distributing the Licensed Material at any time; however, doing so
|
||||
will not terminate this Public License.
|
||||
|
||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
|
||||
License.
|
||||
|
||||
|
||||
Section 7 -- Other Terms and Conditions.
|
||||
|
||||
a. The Licensor shall not be bound by any additional or different
|
||||
terms or conditions communicated by You unless expressly agreed.
|
||||
|
||||
b. Any arrangements, understandings, or agreements regarding the
|
||||
Licensed Material not stated herein are separate from and
|
||||
independent of the terms and conditions of this Public License.
|
||||
|
||||
|
||||
Section 8 -- Interpretation.
|
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and
|
||||
shall not be interpreted to, reduce, limit, restrict, or impose
|
||||
conditions on any use of the Licensed Material that could lawfully
|
||||
be made without permission under this Public License.
|
||||
|
||||
b. To the extent possible, if any provision of this Public License is
|
||||
deemed unenforceable, it shall be automatically reformed to the
|
||||
minimum extent necessary to make it enforceable. If the provision
|
||||
cannot be reformed, it shall be severed from this Public License
|
||||
without affecting the enforceability of the remaining terms and
|
||||
conditions.
|
||||
|
||||
c. No term or condition of this Public License will be waived and no
|
||||
failure to comply consented to unless expressly agreed to by the
|
||||
Licensor.
|
||||
|
||||
d. Nothing in this Public License constitutes or may be interpreted
|
||||
as a limitation upon, or waiver of, any privileges and immunities
|
||||
that apply to the Licensor or You, including from the legal
|
||||
processes of any jurisdiction or authority.
|
||||
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons is not a party to its public
|
||||
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
||||
its public licenses to material it publishes and in those instances
|
||||
will be considered the “Licensor.” The text of the Creative Commons
|
||||
public licenses is dedicated to the public domain under the CC0 Public
|
||||
Domain Dedication. Except for the limited purpose of indicating that
|
||||
material is shared under a Creative Commons public license or as
|
||||
otherwise permitted by the Creative Commons policies published at
|
||||
creativecommons.org/policies, Creative Commons does not authorize the
|
||||
use of the trademark "Creative Commons" or any other trademark or logo
|
||||
of Creative Commons without its prior written consent including,
|
||||
without limitation, in connection with any unauthorized modifications
|
||||
to any of its public licenses or any other arrangements,
|
||||
understandings, or agreements concerning use of licensed material. For
|
||||
the avoidance of doubt, this paragraph does not form part of the
|
||||
public licenses.
|
||||
|
||||
Creative Commons may be contacted at creativecommons.org.
|
||||
21
LICENSE-MIT
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023-present Gustavo "Guz" L. de Mello
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
31
README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
<p align="center">
|
||||
<a href="https://guz.vercel.app">
|
||||
<img src="./.github/assets/013.svg" height="96">
|
||||
<h3 align="center">WWW</h3>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<samp>My personal website powered by <a href="https://kit.svelte.dev">SvelteKit</a></samp>
|
||||
</p>
|
||||
<p align="center">
|
||||
<samp>-----------------------------------------------------------------</samp>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a style="text-decoration: none; color: currentColor;" href="https://github.com/Org013/www/issues/2">
|
||||
<samp>[ Work In Progress ↗︎ ]</samp>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<samp>-----------------------------------------------------------------</samp>
|
||||
</p>
|
||||
<p align="center">
|
||||
<samp>
|
||||
<small>
|
||||
Code licensed under the <a href="./LICENSE-MIT">MIT license</a>, <br/>
|
||||
words and images licensed under <a href="./LICENSE-CC-BY-SA-4.0">CC BY-SA 4.0</a>
|
||||
</small>
|
||||
</samp>
|
||||
</p>
|
||||
4
commitlint.config.cjs
Normal file
@@ -0,0 +1,4 @@
|
||||
/** @type {import('@commitlint/types').UserConfig} */
|
||||
const config = { extends: ['@commitlint/config-conventional'] };
|
||||
|
||||
module.exports = config;
|
||||
59
package.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"name": "@lored/www",
|
||||
"type": "module",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"packageManager": "pnpm@8.0.0",
|
||||
"engines": {
|
||||
"node": ">=18.0.0",
|
||||
"vscode": "^1.22.0"
|
||||
},
|
||||
"scripts": {
|
||||
"prepare": "husky install",
|
||||
"dev": "vite dev",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview",
|
||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
||||
"lint": "eslint .",
|
||||
"lint:fix": "eslint . --fix"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@antfu/eslint-config": "^0.39.3",
|
||||
"@commitlint/config-conventional": "^17.6.3",
|
||||
"@commitlint/types": "^17.4.4",
|
||||
"@fontsource-variable/fira-code": "^5.0.2",
|
||||
"@fontsource-variable/inter": "^5.0.2",
|
||||
"@iconify-json/solar": "^1.1.1",
|
||||
"@iconify-json/svg-spinners": "^1.1.1",
|
||||
"@iconify/utils": "^2.1.5",
|
||||
"@poppanator/sveltekit-svg": "^3.0.1",
|
||||
"@sveltejs/adapter-vercel": "^3.0.0",
|
||||
"@sveltejs/kit": "^1.5.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.45.0",
|
||||
"@typescript-eslint/parser": "^5.45.0",
|
||||
"@unocss/extractor-svelte": "^0.52.4",
|
||||
"cal-sans": "^1.0.1",
|
||||
"eslint": "^8.28.0",
|
||||
"eslint-plugin-spellcheck": "^0.0.20",
|
||||
"eslint-plugin-svelte": "^2.26.0",
|
||||
"husky": "^8.0.0",
|
||||
"mdsvex": "^0.10.6",
|
||||
"rehype-external-links": "^2.1.0",
|
||||
"sass": "^1.62.1",
|
||||
"svelte": "^3.54.0",
|
||||
"svelte-check": "^3.0.1",
|
||||
"tslib": "^2.4.1",
|
||||
"typescript": "^5.0.0",
|
||||
"unocss": "^0.52.4",
|
||||
"unocss-preset-radix": "^2.5.1",
|
||||
"unocss-preset-scrollbar": "^0.2.1",
|
||||
"unplugin-auto-import": "^0.16.2",
|
||||
"unplugin-svelte-components": "^0.2.7",
|
||||
"vercel": "^30.0.0",
|
||||
"vite": "^4.3.0"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*": "eslint --fix"
|
||||
}
|
||||
}
|
||||
9368
pnpm-lock.yaml
generated
Normal file
12
src/app.d.ts
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
// See https://kit.svelte.dev/docs/types#app
|
||||
// for information about these interfaces
|
||||
declare global {
|
||||
namespace App {
|
||||
// interface Error {}
|
||||
// interface Locals {}
|
||||
// interface PageData {}
|
||||
// interface Platform {}
|
||||
}
|
||||
}
|
||||
|
||||
export {};
|
||||
14
src/app.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%sveltekit.assets%/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
%sveltekit.head%
|
||||
</head>
|
||||
|
||||
<body data-sveltekit-preload-data="hover" class="dark-theme dark">
|
||||
<div style="display: contents;">%sveltekit.body%</div>
|
||||
</body>
|
||||
</html>
|
||||
91
src/app.scss
Normal file
@@ -0,0 +1,91 @@
|
||||
body {
|
||||
@apply min-h-100vh m-0 grid;
|
||||
|
||||
&.dark-theme {
|
||||
@apply bg-gray1 text-gray12;
|
||||
}
|
||||
|
||||
@keyframes fade-in {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(10px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer,
|
||||
main > *,
|
||||
footer,
|
||||
main > * > * {
|
||||
--stagger: 0;
|
||||
--delay: 150ms;
|
||||
--start: 0ms;
|
||||
animation: fade-in 1s both 1;
|
||||
animation-delay: calc(var(--start) + var(--stagger) * var(--delay));
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
& {
|
||||
animation: enter 0.6s both;
|
||||
animation-delay: calc(var(--stagger) * var(--delay) + var(--start));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@for $i from 1 through 15 {
|
||||
main > *:nth-child(#{$i}),
|
||||
main > * > *:nth-child(#{$i}) {
|
||||
--stagger: #{$i};
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
@apply h-10vh;
|
||||
--stagger: 15;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
&:not([reset-style]) {
|
||||
@apply dark:text-white
|
||||
font-inter
|
||||
font-bold
|
||||
decoration-underline
|
||||
decoration-1
|
||||
decoration-offset-3
|
||||
decoration-gray2
|
||||
transition-all
|
||||
delay-0 duration-0.5s
|
||||
relative;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
@apply dark:decoration-white decoration-2;
|
||||
}
|
||||
}
|
||||
|
||||
&[target="_blank"] {
|
||||
@apply mr-.5em;
|
||||
&::after {
|
||||
content: "↗";
|
||||
@apply inline-block
|
||||
i-solar:square-top-down-line-duotone
|
||||
transition-all
|
||||
delay-0 duration-0.5s
|
||||
absolute
|
||||
z-10
|
||||
-translate-y-.1em
|
||||
-translate-x-.2em
|
||||
scale-50
|
||||
text-gray10;
|
||||
}
|
||||
|
||||
&:hover::after,
|
||||
&:focus::after {
|
||||
content: "↗";
|
||||
@apply i-solar:square-top-down-outline text-current scale-60;
|
||||
}
|
||||
}
|
||||
}
|
||||
4
src/env.d.ts
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
declare namespace svelteHTML {
|
||||
import type { AttributifyAttributes } from '@unocss/preset-attributify';
|
||||
type HTMLAttributes = AttributifyAttributes;
|
||||
}
|
||||
8
src/lib/assets/icons/buymeacoffee.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<!--
|
||||
By Simple Icons (https://github.com/simple-icons)
|
||||
Licensed under CC0-1.0 license.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24">
|
||||
<path fill="currentColor"
|
||||
d="m20.216 6.415l-.132-.666c-.119-.598-.388-1.163-1.001-1.379c-.197-.069-.42-.098-.57-.241c-.152-.143-.196-.366-.231-.572c-.065-.378-.125-.756-.192-1.133c-.057-.325-.102-.69-.25-.987c-.195-.4-.597-.634-.996-.788a5.723 5.723 0 0 0-.626-.194c-1-.263-2.05-.36-3.077-.416a25.834 25.834 0 0 0-3.7.062c-.915.083-1.88.184-2.75.5c-.318.116-.646.256-.888.501c-.297.302-.393.77-.177 1.146c.154.267.415.456.692.58c.36.162.737.284 1.123.366c1.075.238 2.189.331 3.287.37c1.218.05 2.437.01 3.65-.118c.299-.033.598-.073.896-.119c.352-.054.578-.513.474-.834c-.124-.383-.457-.531-.834-.473c-.466.074-.96.108-1.382.146c-1.177.08-2.358.082-3.536.006a22.228 22.228 0 0 1-1.157-.107c-.086-.01-.18-.025-.258-.036c-.243-.036-.484-.08-.724-.13c-.111-.027-.111-.185 0-.212h.005c.277-.06.557-.108.838-.147h.002c.131-.009.263-.032.394-.048a25.076 25.076 0 0 1 3.426-.12c.674.019 1.347.067 2.017.144l.228.031c.267.04.533.088.798.145c.392.085.895.113 1.07.542c.055.137.08.288.111.431l.319 1.484a.237.237 0 0 1-.199.284h-.003c-.037.006-.075.01-.112.015a36.704 36.704 0 0 1-4.743.295a37.059 37.059 0 0 1-4.699-.304c-.14-.017-.293-.042-.417-.06c-.326-.048-.649-.108-.973-.161c-.393-.065-.768-.032-1.123.161c-.29.16-.527.404-.675.701c-.154.316-.199.66-.267 1c-.069.34-.176.707-.135 1.056c.087.753.613 1.365 1.37 1.502a39.69 39.69 0 0 0 11.343.376a.483.483 0 0 1 .535.53l-.071.697l-1.018 9.907c-.041.41-.047.832-.125 1.237c-.122.637-.553 1.028-1.182 1.171c-.577.131-1.165.2-1.756.205c-.656.004-1.31-.025-1.966-.022c-.699.004-1.556-.06-2.095-.58c-.475-.458-.54-1.174-.605-1.793l-.731-7.013l-.322-3.094c-.037-.351-.286-.695-.678-.678c-.336.015-.718.3-.678.679l.228 2.185l.949 9.112c.147 1.344 1.174 2.068 2.446 2.272c.742.12 1.503.144 2.257.156c.966.016 1.942.053 2.892-.122c1.408-.258 2.465-1.198 2.616-2.657c.34-3.332.683-6.663 1.024-9.995l.215-2.087a.484.484 0 0 1 .39-.426c.402-.078.787-.212 1.074-.518c.455-.488.546-1.124.385-1.766zm-1.478.772c-.145.137-.363.201-.578.233c-2.416.359-4.866.54-7.308.46c-1.748-.06-3.477-.254-5.207-.498c-.17-.024-.353-.055-.47-.18c-.22-.236-.111-.71-.054-.995c.052-.26.152-.609.463-.646c.484-.057 1.046.148 1.526.22c.577.088 1.156.159 1.737.212c2.48.226 5.002.19 7.472-.14c.45-.06.899-.13 1.345-.21c.399-.072.84-.206 1.08.206c.166.281.188.657.162.974a.544.544 0 0 1-.169.364zm-6.159 3.9c-.862.37-1.84.788-3.109.788a5.884 5.884 0 0 1-1.569-.217l.877 9.004c.065.78.717 1.38 1.5 1.38c0 0 1.243.065 1.658.065c.447 0 1.786-.065 1.786-.065c.783 0 1.434-.6 1.499-1.38l.94-9.95a3.996 3.996 0 0 0-1.322-.238c-.826 0-1.491.284-2.26.613z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
8
src/lib/assets/icons/codeberg.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<!--
|
||||
By Simple Icons (https://github.com/simple-icons)
|
||||
Licensed under CC0-1.0 license.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24">
|
||||
<path fill="currentColor"
|
||||
d="M11.955.49A12 12 0 0 0 0 12.49a12 12 0 0 0 1.832 6.373L11.838 5.928a.187.14 0 0 1 .324 0l10.006 12.935A12 12 0 0 0 24 12.49a12 12 0 0 0-12-12a12 12 0 0 0-.045 0zm.375 6.467l4.416 16.553a12 12 0 0 0 5.137-4.213z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 431 B |
8
src/lib/assets/icons/github.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<!--
|
||||
By Remix Icon (https://github.com/Remix-Design/RemixIcon)
|
||||
Licensed under Apache-2.0 license.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24">
|
||||
<path fill="currentColor"
|
||||
d="M12.001 2c-5.525 0-10 4.475-10 10a9.994 9.994 0 0 0 6.837 9.488c.5.087.688-.213.688-.476c0-.237-.013-1.024-.013-1.862c-2.512.463-3.162-.612-3.362-1.175c-.113-.288-.6-1.175-1.025-1.413c-.35-.187-.85-.65-.013-.662c.788-.013 1.35.725 1.538 1.025c.9 1.512 2.337 1.087 2.912.825c.088-.65.35-1.087.638-1.337c-2.225-.25-4.55-1.113-4.55-4.938c0-1.088.387-1.987 1.025-2.688c-.1-.25-.45-1.275.1-2.65c0 0 .837-.262 2.75 1.026a9.28 9.28 0 0 1 2.5-.338c.85 0 1.7.112 2.5.337c1.913-1.3 2.75-1.024 2.75-1.024c.55 1.375.2 2.4.1 2.65c.637.7 1.025 1.587 1.025 2.687c0 3.838-2.337 4.688-4.563 4.938c.363.312.676.912.676 1.85c0 1.337-.013 2.412-.013 2.75c0 .262.188.574.688.474A10.016 10.016 0 0 0 22 12c0-5.525-4.475-10-10-10Z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 939 B |
8
src/lib/assets/icons/instagram.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<!--
|
||||
By Remix Icon (https://github.com/Remix-Design/RemixIcon)
|
||||
Licensed under Apache-2.0 license.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24">
|
||||
<path fill="currentColor"
|
||||
d="M13.028 2.001a78.82 78.82 0 0 1 2.189.022l.194.007c.224.008.445.018.712.03c1.064.05 1.79.218 2.427.465c.66.254 1.216.598 1.772 1.154a4.908 4.908 0 0 1 1.153 1.771c.247.637.415 1.364.465 2.428c.012.266.022.488.03.712l.006.194a79 79 0 0 1 .023 2.188l.001.746v1.31a78.836 78.836 0 0 1-.023 2.189l-.006.194c-.008.224-.018.445-.03.712c-.05 1.064-.22 1.79-.466 2.427a4.884 4.884 0 0 1-1.153 1.772a4.915 4.915 0 0 1-1.772 1.153c-.637.247-1.363.415-2.427.465c-.267.012-.488.022-.712.03l-.194.006a79 79 0 0 1-2.189.023l-.746.001h-1.309a78.836 78.836 0 0 1-2.189-.023l-.194-.006a60.64 60.64 0 0 1-.712-.03c-1.064-.05-1.79-.22-2.428-.466a4.89 4.89 0 0 1-1.771-1.153a4.904 4.904 0 0 1-1.154-1.772c-.247-.637-.415-1.363-.465-2.427a74.367 74.367 0 0 1-.03-.712l-.005-.194A79.053 79.053 0 0 1 2 13.028v-2.056a78.82 78.82 0 0 1 .022-2.188l.007-.194c.008-.224.018-.446.03-.712c.05-1.065.218-1.79.465-2.428A4.88 4.88 0 0 1 3.68 3.68a4.897 4.897 0 0 1 1.77-1.155c.638-.247 1.363-.415 2.428-.465l.712-.03l.194-.005A79.053 79.053 0 0 1 10.972 2h2.056Zm-1.028 5A5 5 0 1 0 12 17a5 5 0 0 0 0-10Zm0 2A3 3 0 1 1 12.001 15a3 3 0 0 1 0-6Zm5.25-3.5a1.25 1.25 0 0 0 0 2.498a1.25 1.25 0 0 0 0-2.5Z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
8
src/lib/assets/icons/ko-fi.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<!--
|
||||
By Simple Icons (https://github.com/simple-icons)
|
||||
Licensed under CC0-1.0 license.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24">
|
||||
<path fill="currentColor"
|
||||
d="M23.881 8.948c-.773-4.085-4.859-4.593-4.859-4.593H.723c-.604 0-.679.798-.679.798s-.082 7.324-.022 11.822c.164 2.424 2.586 2.672 2.586 2.672s8.267-.023 11.966-.049c2.438-.426 2.683-2.566 2.658-3.734c4.352.24 7.422-2.831 6.649-6.916zm-11.062 3.511c-1.246 1.453-4.011 3.976-4.011 3.976s-.121.119-.31.023c-.076-.057-.108-.09-.108-.09c-.443-.441-3.368-3.049-4.034-3.954c-.709-.965-1.041-2.7-.091-3.71c.951-1.01 3.005-1.086 4.363.407c0 0 1.565-1.782 3.468-.963c1.904.82 1.832 3.011.723 4.311zm6.173.478c-.928.116-1.682.028-1.682.028V7.284h1.77s1.971.551 1.971 2.638c0 1.913-.985 2.667-2.059 3.015z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 812 B |
8
src/lib/assets/icons/mastodon.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<!--
|
||||
By Remix Icon (https://github.com/Remix-Design/RemixIcon)
|
||||
Licensed under Apache-2.0 license.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24">
|
||||
<path fill="currentColor"
|
||||
d="M21.26 13.99c-.275 1.41-2.457 2.955-4.963 3.254c-1.306.156-2.593.3-3.965.236c-2.244-.103-4.014-.535-4.014-.535c0 .218.014.426.04.62c.292 2.215 2.196 2.347 4 2.41c1.82.061 3.44-.45 3.44-.45l.075 1.646s-1.273.684-3.54.81c-1.252.068-2.805-.032-4.613-.51c-3.923-1.039-4.598-5.22-4.701-9.464c-.032-1.26-.012-2.447-.012-3.44c0-4.34 2.843-5.611 2.843-5.611C7.283 2.298 9.742 2.021 12.3 2h.062c2.557.02 5.018.298 6.451.956c0 0 2.843 1.272 2.843 5.61c0 0 .036 3.201-.396 5.424Zm-2.957-5.087c0-1.074-.274-1.927-.823-2.558c-.566-.631-1.307-.955-2.228-.955c-1.065 0-1.872.41-2.405 1.228l-.518.87l-.519-.87C11.277 5.8 10.47 5.39 9.406 5.39c-.921 0-1.663.324-2.229.955c-.549.631-.822 1.484-.822 2.558v5.253h2.081V9.057c0-1.075.452-1.62 1.357-1.62c1 0 1.501.647 1.501 1.927v2.79h2.07v-2.79c0-1.28.5-1.927 1.5-1.927c.905 0 1.358.545 1.358 1.62v5.1h2.08V8.902Z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
8
src/lib/assets/icons/pixelfed.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<!--
|
||||
By Remix Icon (https://github.com/Remix-Design/RemixIcon)
|
||||
Licensed under Apache-2.0 license.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24">
|
||||
<path fill="currentColor"
|
||||
d="M12.001 2c5.523 0 10 4.477 10 10s-4.477 10-10 10s-10-4.477-10-10s4.477-10 10-10Zm1.031 6.099h-2.624c-.988 0-1.789.776-1.789 1.733v6.748l2.595-2.471h1.818c1.713 0 3.101-1.345 3.101-3.005s-1.388-3.005-3.1-3.005Z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 440 B |
8
src/lib/assets/icons/twitter.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<!--
|
||||
By Remix Icon (https://github.com/Remix-Design/RemixIcon)
|
||||
Licensed under Apache-2.0 license.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24">
|
||||
<path fill="currentColor"
|
||||
d="M22.212 5.656a8.384 8.384 0 0 1-2.401.658A4.195 4.195 0 0 0 21.649 4c-.82.488-1.719.83-2.655 1.015a4.182 4.182 0 0 0-7.126 3.814a11.874 11.874 0 0 1-8.621-4.37a4.168 4.168 0 0 0-.566 2.103c0 1.45.739 2.731 1.86 3.481a4.169 4.169 0 0 1-1.894-.523v.051a4.185 4.185 0 0 0 3.355 4.102a4.205 4.205 0 0 1-1.89.072A4.185 4.185 0 0 0 8.02 16.65a8.394 8.394 0 0 1-6.192 1.732a11.831 11.831 0 0 0 6.41 1.88c7.694 0 11.9-6.373 11.9-11.9c0-.18-.004-.362-.012-.541a8.497 8.497 0 0 0 2.086-2.164Z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 714 B |
13
src/lib/assets/logo-013.svg
Normal file
@@ -0,0 +1,13 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 186.23 93.51">
|
||||
<defs>
|
||||
<style>.cls-1{fill:currentColor;}</style>
|
||||
</defs>
|
||||
<g id="logos">
|
||||
<g id="dark">
|
||||
<polygon class="cls-1" points="68.37 51.8 22.71 2.1 5.59 17.14 51.25 66.85 68.37 51.8" />
|
||||
<rect class="cls-1" x="69.45" width="23.01" height="61.64" />
|
||||
<polygon class="cls-1"
|
||||
points="145.09 24.19 185.73 24.19 185.73 1.68 105.09 1.68 146.25 70.92 0 71 0.01 93.51 186.23 93.41 145.09 24.19" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 486 B |
31
src/lib/assets/logo-light.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="54.096081mm"
|
||||
height="14.636162mm"
|
||||
viewBox="0 0 54.096081 14.636162"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<g
|
||||
id="layer5"
|
||||
transform="translate(-6.2887584,-90.201398)">
|
||||
<g
|
||||
id="g8166"
|
||||
transform="translate(2.897901,-4.2802458)">
|
||||
<path
|
||||
id="rect7323"
|
||||
style="fill:#fcfcfc;stroke-width:0"
|
||||
d="M 3.3908575,94.481644 H 57.486938 V 109.11781 H 3.3908575 Z" />
|
||||
<path
|
||||
id="path5995-9"
|
||||
style="font-size:11.425px;font-family:'Cal Sans';-inkscape-font-specification:'Cal Sans, Normal';fill:#171717;fill-opacity:1;stroke-width:1.491;stroke-dasharray:none"
|
||||
d="m 143.17108,12.175706 c 1.01602,0 1.5295,-0.426074 1.8354,-1.070646 v 0.928621 h 1.43117 V 4.0584619 h -1.47487 v 3.1682377 c -0.3059,-0.6008727 -0.81938,-0.9941712 -1.7917,-0.9941712 -1.56227,0 -2.80771,1.3437698 -2.80771,2.9825137 0,1.6387439 1.24544,2.9606639 2.80771,2.9606639 z m -1.33284,-2.9715891 c 0,-0.8849216 0.63365,-1.6387437 1.57319,-1.6387437 0.97232,0 1.59505,0.7647471 1.59505,1.6496689 0,0.8849219 -0.62273,1.6278189 -1.59505,1.6278189 -0.93954,0 -1.57319,-0.775672 -1.57319,-1.6387441 z m -4.70867,2.9715891 c 1.12528,0 2.07575,-0.502548 2.53459,-1.212671 l -1.14712,-0.863071 c -0.26219,0.436998 -0.75382,0.764747 -1.38747,0.764747 -0.74289,0 -1.24544,-0.469773 -1.40931,-1.1361959 h 4.2498 c 0.0328,-0.1857243 0.0437,-0.3605236 0.0437,-0.5243982 0,-1.6387437 -1.17989,-2.9934384 -2.88419,-2.9934384 -1.70429,0 -2.93881,1.3546947 -2.93881,2.9934384 0,1.6387441 1.1799,2.9715891 2.93881,2.9715891 z m -1.40931,-3.5506119 c 0.16387,-0.6773473 0.68827,-1.1471205 1.38746,-1.1471205 0.72105,0 1.25637,0.513473 1.42025,1.1471205 z m -4.71959,3.4085869 h 1.47487 V 9.1276422 c 0,-0.9504713 0.6555,-1.5185691 1.50764,-1.5185691 h 0.20758 V 6.2216035 c -0.98325,-0.054625 -1.56227,0.3932984 -1.75892,1.2126702 V 6.3527029 h -1.43117 z m -3.68171,0.142025 c 1.75892,0 3.02621,-1.332845 3.02621,-2.9715891 0,-1.6387437 -1.26729,-2.9825134 -3.02621,-2.9825134 -1.75892,0 -3.02621,1.3437697 -3.02621,2.9825134 0,1.6387441 1.26729,2.9715891 3.02621,2.9715891 z m -1.55134,-2.9715891 c 0,-0.8849216 0.61179,-1.6387437 1.55134,-1.6387437 0.93955,0 1.55134,0.7538221 1.55134,1.6387437 0,0.8849221 -0.61179,1.6278191 -1.55134,1.6278191 -0.93955,0 -1.55134,-0.742897 -1.55134,-1.6278191 z m -6.01965,2.8295641 h 4.38091 v -1.376544 h -2.85141 V 4.3862106 h -1.5295 z M 98.73274,7.3617117 h 3.19558 l -0.004,-3.2513714 h -3.192002 v 0.6881109 z m 1.37623,-1.3765889 V 5.48692 h 0.44098 v 0.4982028 z m 17.923,-1.826358 -1.37648,0.00184 0.0108,4.6975917 H 115.236 l -0.0376,-2.6274961 -1.37648,0.021473 0.0574,3.9824656 h 4.16708 z m -3.0218,0.2240357 -3.40894,4.0398184 -0.009,-2.2098908 -1.37648,0.00551 0.0233,5.9539869 5.82315,-6.9021146 z m -1.51986,-0.2222462 -5.30518,0.03588 v 7.9792737 h 9.86118 v -1.376479 h -8.4847 V 5.563957 l 2.52892,-0.017894 -0.043,2.5737308 1.37648,0.021473 z m -4.62053,4.7925779 -5.40913,0.025052 v 3.2476268 h 3.96634 v -1.376478 h -2.58986 v -0.500048 l 4.03982,-0.01973 z M 107.5883,4.2268638 101.42461,7.815032 v 3.041513 l -2.695603,0.01074 0.0054,1.376479 4.066713,-0.01615 V 8.6071864 l 3.41072,-1.9858551 v 2.5611773 h 1.37648 z"
|
||||
transform="translate(-92.146297,93.62268)" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
42
src/lib/data/socials.json
Normal file
@@ -0,0 +1,42 @@
|
||||
[
|
||||
[
|
||||
{
|
||||
"url": "https://twitter.com/guz013_",
|
||||
"name": "Twitter"
|
||||
},
|
||||
{
|
||||
"url": "https://mastodon.social/@guz013",
|
||||
"name": "Mastodon"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"url": "https://instagram.com/guz013_",
|
||||
"name": "Instagram"
|
||||
},
|
||||
{
|
||||
"url": "https://pixelfed.social/@guz013",
|
||||
"name": "Pixelfed"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"url": "https://github.com/guz013",
|
||||
"name": "GitHub"
|
||||
},
|
||||
{
|
||||
"url": "https://codeberg.org/guz013",
|
||||
"name": "Codeberg"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"url": "https://buymeacoffee.com/guz013",
|
||||
"name": "BuyMeACoffee"
|
||||
},
|
||||
{
|
||||
"url": "https://ko-fi.com/guz013",
|
||||
"name": "Ko-Fi"
|
||||
}
|
||||
]
|
||||
]
|
||||
42
src/routes/+layout.svelte
Normal file
@@ -0,0 +1,42 @@
|
||||
<script lang="ts">
|
||||
import '@fontsource-variable/fira-code';
|
||||
import '@fontsource-variable/inter';
|
||||
import 'cal-sans';
|
||||
import 'virtual:uno.css';
|
||||
import '../app.scss';
|
||||
</script>
|
||||
|
||||
<main
|
||||
un-text="gray12"
|
||||
un-font="sans"
|
||||
un-p="x-3ch lg:0"
|
||||
un-top="0"
|
||||
un-left="0"
|
||||
un-flex="~ col"
|
||||
un-justify="center"
|
||||
un-items="center"
|
||||
>
|
||||
<slot />
|
||||
</main>
|
||||
<footer
|
||||
un-text="gray9 xs center"
|
||||
un-font="sans light"
|
||||
un-flex="~ col"
|
||||
un-justify="center"
|
||||
un-bottom="5"
|
||||
>
|
||||
<p>
|
||||
<a
|
||||
href="https://creativecommons.org/licenses/by-sa/4.0/"
|
||||
ref="nofollow noopener noreferrer"
|
||||
target="_blank"
|
||||
reset-style
|
||||
un-transition="all duration-0.5s delay-0"
|
||||
un-color="gray9"
|
||||
un-decoration="gray2 hover:gray5 offset-3 1"
|
||||
>
|
||||
CC BY-SA 4.0 2023-PRESENT
|
||||
</a>
|
||||
© Gustavo "Guz" L. de Mello
|
||||
</p>
|
||||
</footer>
|
||||
55
src/routes/+page.svelte
Normal file
@@ -0,0 +1,55 @@
|
||||
<script lang="ts">
|
||||
|
||||
</script>
|
||||
|
||||
<section un-max-w="60ch" un-m="y-auto" un-font="cal">
|
||||
<figure
|
||||
un-w="5ch"
|
||||
un-justify-self="lg:end center"
|
||||
un-place-self="lg:end center"
|
||||
un-m="0"
|
||||
>
|
||||
<figcaption un-hidden>Lored Logo</figcaption>
|
||||
<LogoLightSvg />
|
||||
</figure>
|
||||
|
||||
Welcome to Lored! The incubator name and organization of all libraries, tools,
|
||||
configs, and resources made for developers by
|
||||
[@Guz013](https://github.com/Guz013).
|
||||
<!-- -->
|
||||
This is a project created out of passion
|
||||
and a need for a dedicated space to share and store of all repositories
|
||||
related to improving, streamlining, strengthening, speeding up and simply
|
||||
making the developer experience more satisfying and fun.
|
||||
<!-- -->
|
||||
Feel free to explore, use, modify and contribute any repository you find interesting
|
||||
or useful. All of them are licensed under permissive licenses.
|
||||
|
||||
<p>
|
||||
<em>
|
||||
<small>
|
||||
<samp>
|
||||
This is a new and premature project <del>and developer</del> with not a
|
||||
lot of experience, but with a lot of ideas for the future. And what's the
|
||||
best way to learn something? Doing it!
|
||||
</samp>
|
||||
</small>
|
||||
</em>
|
||||
</p>
|
||||
|
||||
<hr un-w="10ch" un-m="y-5" un-border="gray1 solid 1" />
|
||||
|
||||
<div>
|
||||
<a href="https://guz.one">
|
||||
<figure
|
||||
un-w="5ch"
|
||||
un-text="dark:white"
|
||||
un-justify-self="lg:end center"
|
||||
un-place-self="lg:end center"
|
||||
un-m="0"
|
||||
>
|
||||
<figcaption un-hidden>Guz013 Logo</figcaption>
|
||||
<Logo013Svg />
|
||||
</figure>
|
||||
</a>
|
||||
</div>
|
||||
61
static/favicon.svg
Normal file
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="16.321503mm"
|
||||
height="16.321503mm"
|
||||
viewBox="0 0 16.321503 16.321503"
|
||||
version="1.1"
|
||||
id="svg222"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview224"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false" /><defs
|
||||
id="defs219"><style
|
||||
id="style1145">.cls-1{fill:#fff;stroke:#fff;stroke-miterlimit:10;stroke-width:9px;}.cls-2{fill:#111;}</style><style
|
||||
id="style1223">.cls-1{fill:#fff;}</style></defs><g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2"
|
||||
transform="translate(-66.718485,-6.2330502)"><g
|
||||
id="_013"
|
||||
data-name="013"
|
||||
transform="matrix(0.0446394,0,0,0.0446394,66.718484,6.2330502)"
|
||||
style="fill:#000000;stroke:#ffffff;stroke-opacity:1"
|
||||
inkscape:export-filename="013.svg"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"><rect
|
||||
class="cls-1"
|
||||
width="365.63"
|
||||
height="365.63"
|
||||
id="rect1149"
|
||||
x="0"
|
||||
y="0"
|
||||
style="fill:#111111;fill-opacity:1;stroke:none;stroke-width:9px;stroke-miterlimit:10;stroke-opacity:1"
|
||||
ry="182.815" /><polygon
|
||||
class="cls-2"
|
||||
points="151.65,197.77 164.39,186.57 130.4,149.58 117.66,160.77 "
|
||||
id="polygon1151"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /><rect
|
||||
class="cls-2"
|
||||
x="165.19"
|
||||
y="148.00999"
|
||||
width="17.129999"
|
||||
height="45.880001"
|
||||
id="rect1153"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /><polygon
|
||||
class="cls-2"
|
||||
points="252.13,217.54 221.5,166.02 251.76,166.02 251.76,149.27 191.73,149.27 222.37,200.81 113.5,200.87 113.51,217.62 "
|
||||
id="polygon1155"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
23
svelte.config.js
Normal file
@@ -0,0 +1,23 @@
|
||||
import adapter from '@sveltejs/adapter-vercel';
|
||||
import { vitePreprocess } from '@sveltejs/kit/vite';
|
||||
import { mdsvex } from 'mdsvex';
|
||||
import rhExternalLinks from 'rehype-external-links';
|
||||
|
||||
/** @type {import('@sveltejs/kit').Config} */
|
||||
const config = {
|
||||
extensions: ['.svelte', '.svx', '.md'],
|
||||
preprocess: [vitePreprocess(), mdsvex({
|
||||
rehypePlugins: [
|
||||
[rhExternalLinks, {
|
||||
target: '_blank',
|
||||
rel: ['nofollow', 'noopener', 'noreferrer'],
|
||||
}],
|
||||
],
|
||||
extensions: ['.svelte', '.svx', '.md'],
|
||||
})],
|
||||
kit: {
|
||||
adapter: adapter(),
|
||||
},
|
||||
};
|
||||
|
||||
export default config;
|
||||
13
tsconfig.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"extends": "./.svelte-kit/tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"checkJs": true,
|
||||
"esModuleInterop": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"resolveJsonModule": true,
|
||||
"skipLibCheck": true,
|
||||
"sourceMap": true,
|
||||
"strict": true
|
||||
}
|
||||
}
|
||||
73
unocss.config.ts
Normal file
@@ -0,0 +1,73 @@
|
||||
import {
|
||||
defineConfig,
|
||||
presetAttributify,
|
||||
presetIcons,
|
||||
presetUno,
|
||||
presetWebFonts,
|
||||
transformerDirectives,
|
||||
transformerVariantGroup,
|
||||
} from 'unocss';
|
||||
import extractorSvelte from '@unocss/extractor-svelte';
|
||||
import { presetRadix, radixColors } from 'unocss-preset-radix';
|
||||
import { presetScrollbar } from 'unocss-preset-scrollbar';
|
||||
import { FileSystemIconLoader } from '@iconify/utils/lib/loader/node-loaders';
|
||||
|
||||
import socials from './src/lib/data/socials.json';
|
||||
|
||||
export default defineConfig({
|
||||
safelist: [
|
||||
...socials.flat().map(social =>
|
||||
`i-custom:${social.name.toLowerCase()}`,
|
||||
),
|
||||
`lg:grid-cols-${socials.length}`,
|
||||
],
|
||||
include: [
|
||||
/\.svelte/,
|
||||
/\.svelte\?svelte/,
|
||||
/\.svx/,
|
||||
/\.svx\?svx/,
|
||||
/\.md/,
|
||||
/\.md\?md/,
|
||||
],
|
||||
presets: [
|
||||
presetUno(),
|
||||
presetAttributify(),
|
||||
presetScrollbar(),
|
||||
presetIcons({
|
||||
collections: {
|
||||
solar: () => import('@iconify-json/solar/icons.json').then(i => i.default as any),
|
||||
spinners: () => import('@iconify-json/svg-spinners/icons.json').then(i => i.default as any),
|
||||
custom: FileSystemIconLoader('./src/lib/assets/icons'),
|
||||
},
|
||||
}),
|
||||
presetWebFonts({
|
||||
fonts: {
|
||||
sans: {
|
||||
name: 'Inter',
|
||||
provider: 'none',
|
||||
},
|
||||
code: {
|
||||
name: 'Fira Code',
|
||||
provider: 'none',
|
||||
},
|
||||
cal: {
|
||||
name: 'Cal Sans',
|
||||
provider: 'none',
|
||||
},
|
||||
},
|
||||
}),
|
||||
// @ts-expect-error It seems that this preset
|
||||
// has an incorrect type definition for this function,
|
||||
// even when is works as intended.
|
||||
presetRadix({
|
||||
palette: [...radixColors],
|
||||
}),
|
||||
],
|
||||
transformers: [
|
||||
transformerDirectives(),
|
||||
transformerVariantGroup(),
|
||||
],
|
||||
extractors: [
|
||||
extractorSvelte(),
|
||||
],
|
||||
});
|
||||
114
vite.config.ts
Normal file
@@ -0,0 +1,114 @@
|
||||
import path from 'node:path';
|
||||
import fs from 'node:fs';
|
||||
import { sveltekit } from '@sveltejs/kit/vite';
|
||||
import { defineConfig } from 'vite';
|
||||
import AutoImport from 'unplugin-auto-import/vite';
|
||||
import SvelteImport from 'unplugin-svelte-components/vite';
|
||||
import UnoCss from 'unocss/vite';
|
||||
import svg from '@poppanator/sveltekit-svg';
|
||||
|
||||
export default defineConfig({
|
||||
server: {
|
||||
port: 3000,
|
||||
},
|
||||
plugins: [
|
||||
SvelteImport({
|
||||
include: [
|
||||
/\.svelte/,
|
||||
/\.svelte\?svelte/,
|
||||
],
|
||||
external: [
|
||||
...findPathsByExtension(path.join(__dirname, 'src'), '.svx').map((filePath) => {
|
||||
return {
|
||||
from: filePath,
|
||||
names: [
|
||||
`default as ${capitalize(getFileName(filePath))}Svx`,
|
||||
],
|
||||
defaultImport: false,
|
||||
};
|
||||
}),
|
||||
...findPathsByExtension(path.join(__dirname, 'src'), '.md').map((filePath) => {
|
||||
return {
|
||||
from: filePath,
|
||||
names: [
|
||||
`default as ${capitalize(getFileName(filePath))}Md`,
|
||||
],
|
||||
defaultImport: false,
|
||||
};
|
||||
}),
|
||||
...findPathsByExtension(path.join(__dirname, 'src'), '.svg').map((filePath) => {
|
||||
return {
|
||||
from: filePath,
|
||||
names: [
|
||||
`default as ${getFileName(filePath).split('-').map(s => capitalize(s)).join('')}Svg`,
|
||||
],
|
||||
defaultImport: false,
|
||||
};
|
||||
}),
|
||||
],
|
||||
dirs: [
|
||||
'./src/**/*',
|
||||
],
|
||||
importPathTransform: (importPath) => {
|
||||
if (path.extname(importPath) === '.svg')
|
||||
return `${importPath}?component`;
|
||||
if (getFileName(importPath).startsWith('+'))
|
||||
return '';
|
||||
else return importPath;
|
||||
},
|
||||
dts: './src/lib/components.d.ts',
|
||||
}),
|
||||
AutoImport({
|
||||
include: [
|
||||
/\.svelte/,
|
||||
/\.svelte\?svelte/,
|
||||
/.[tj]sx?$/,
|
||||
],
|
||||
imports: [
|
||||
'svelte',
|
||||
'svelte/animate',
|
||||
'svelte/easing',
|
||||
'svelte/motion',
|
||||
'svelte/store',
|
||||
'svelte/transition',
|
||||
],
|
||||
dirs: [
|
||||
'./src/**/*',
|
||||
],
|
||||
dts: './src/lib/imports.d.ts',
|
||||
eslintrc: {
|
||||
enabled: true,
|
||||
filepath: './.eslintrc-auto-import.json',
|
||||
globalsPropValue: true,
|
||||
},
|
||||
}),
|
||||
UnoCss(),
|
||||
svg(),
|
||||
sveltekit(),
|
||||
],
|
||||
});
|
||||
|
||||
function findPathsByExtension(directory: string, extension: string): string[] {
|
||||
const file: string[] = [];
|
||||
const directoryFiles = fs.readdirSync(directory);
|
||||
|
||||
for (const directoryFile of directoryFiles) {
|
||||
const filePath = path.join(directory, directoryFile);
|
||||
|
||||
if (fs.statSync(filePath).isDirectory())
|
||||
file.push(...findPathsByExtension(filePath, extension));
|
||||
|
||||
else if (path.extname(filePath) === extension)
|
||||
file.push(filePath);
|
||||
}
|
||||
|
||||
return file;
|
||||
}
|
||||
|
||||
function getFileName(filePath: string): string {
|
||||
return path.basename(filePath).replace(path.extname(filePath), '');
|
||||
}
|
||||
|
||||
function capitalize(string: string): string {
|
||||
return `${string[0].toUpperCase()}${string.substring(1, string.length)}`;
|
||||
}
|
||||