diff --git a/.eleventy.js b/.eleventy.js new file mode 100644 index 0000000..15a527b --- /dev/null +++ b/.eleventy.js @@ -0,0 +1,48 @@ + +module.exports = function(eleventyConfig) { + const {DateTime} = require('luxon') + const hljs = require('highlight.js') + const markdownIt = require('markdown-it')({ + html: true, + linkify: true, + typographer: true, + highlight: function (str, lang) { + if (lang && hljs.getLanguage(lang)) { + try { + return hljs.highlight(str, { language: lang }).value + } catch (__) {} + } + + return '' + } + } + ) + .use(require('markdown-it-anchor').default) + .use(require('markdown-it-table-of-contents'), { + includeLevel: [1,2,3,4,5,6], + containerHeaderHtml: `
Table of Contents
` + }); + + eleventyConfig.setLibrary("md", markdownIt) + eleventyConfig.addPassthroughCopy("./src/assets/*") + eleventyConfig.addPassthroughCopy("./src/js/*") + eleventyConfig.addPassthroughCopy("./src/admin/*") + eleventyConfig.addPassthroughCopy("./src/css/style.css") + eleventyConfig.addPassthroughCopy("./src/images/*") + eleventyConfig.addPassthroughCopy("./settings.json") + + eleventyConfig.addFilter("postDate", (dateObj) => { + return DateTime.fromJSDate(dateObj).toLocaleString(DateTime.DATE_MED) + }) + + eleventyConfig.addFilter("postYear", (dateObj) => { + return DateTime.fromJSDate(dateObj).toLocaleString({year: 'numeric'}) + }) + + return { + dir: { + input: "src", + output: "public", + } + } +} \ No newline at end of file diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 0000000..577bbb5 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,71 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ master ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ master ] + schedule: + - cron: '29 23 * * 6' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'javascript' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] + # Learn more: + # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v1 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 diff --git a/README.abs-ID.md b/README.abs-ID.md index c8ec4d3..368812a 100644 --- a/README.abs-ID.md +++ b/README.abs-ID.md @@ -1,16 +1,34 @@ -

EmptyWork Pung Website

-

- -

- -
- - [![CodeQL](https://github.com/EmptyWork/emptywork.github.io/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/EmptyWork/emptywork.github.io/actions/workflows/codeql-analysis.yml) - -
- -## Tentang -Baca akang pake: Bahasa Inggris, Bahasa Indonesia - -Kode sumber par beta pung website.
-Beta biking akang repository ni par kase tuju kode yang beta su tulis
deng par jadi bukti beta pung kemampuan par karja pake Javascript, HTML5 deng CSS3. +![EmptyWork's Personal Website](src/images/emptywork.github.io-header.jpg) + +[![Repository Stars](https://img.shields.io/github/stars/EmptyWork/emptywork.github.io?style=for-the-badge)]() +[![Repository Forks](https://img.shields.io/github/forks/EmptyWork/emptywork.github.io?style=for-the-badge)]() +[![License](https://img.shields.io/github/license/EmptyWork/emptywork.github.io?style=for-the-badge)](https://github.com/EmptyWork/emptywork.github.io/blob/master/LICENSE) +[![Netlify Status](https://img.shields.io/netlify/08d2d578-7470-4e65-8067-93ab5e09f671?style=for-the-badge)](https://app.netlify.com/sites/emptywork/deploys) +[![CodeQL](https://img.shields.io/github/workflow/status/EmptyWork/emptywork.github.io/CodeQL?event=push&style=for-the-badge)](https://github.com/EmptyWork/emptywork.github.io/actions/workflows/codeql-analysis.yml) + +[**⚠Laporkan Bug**](https://github.com/EmptyWork/emptywork.github.io/issues/new) — [**📧Minta Fitur**](https://github.com/EmptyWork/emptywork.github.io/issues/new) + +**Baca akang pake: [🆔Bahasa Indonesia](README.id-ID.md), [🅰Bahasa Inggris](README.md)** +## Sumber kode par beta pung website pribadi + +[EmptyWork](https://emptywork.github.io) tu website yang responsive, akang punya design multi-page par website blog beta biking akang pake [11ty](https://www.11ty.dev/) jadi Static Site Generator, sedangkan [Nunjuck](https://mozilla.github.io/nunjucks/templating.html) jadi akang pung bahasa templatingnya, deng [NetlifyCMS](https://www.netlifycms.org/) par jadi Content Management + +Kamong bisa `fork` kalo seng `clone` repository ini par _ganti_ deng biking akang jadi iko kamong pung mau, akang jua [**sebg wajib**](https://github.com/EmptyWork/emptywork.github.io/blob/master/LICENSE) par kamong taro beta di kredit, tapi kalo memang kamong mau tolong kase tambah [EmptyWork](https://github.com/EmptyWork) jua. + + +## Table Kontent +- [Instalasi](#instalasi) +- [Dukungan](#dukungan) + +### Instalasi + +`clone` kalo seng `fork` akang repository ni, kalo kamong `fork` tinggal ubah akang pung nama repository baiko kamong pung nama akun saja, sedangkan kalo memang pake `clone` berarti musti biking repository baru la kasih maso file ka akang. Inga jang lupa instal [node.js](https://nodejs.org) deng `npm` di kamong pung komputer lai. + +Kalo sudah iko langkah-langkah ni: +- Buka direktori yang kamong taro file dari `fork` kalo seng `fork` +- Lalu ketik `npm install` +- `npm run build` kalo seng `npm start` kalo kamong mau baganti akang. + +### Dukungan + +Kase ⭐ par akang ni repo! kalo seng iko [EmptyWork](https://github.com/EmptyWork) jua. diff --git a/README.id-ID.md b/README.id-ID.md index 6b0d6c4..270a613 100644 --- a/README.id-ID.md +++ b/README.id-ID.md @@ -1,17 +1,34 @@ -

EmptyWork Website

-

- -

- -
- - [![CodeQL](https://github.com/EmptyWork/emptywork.github.io/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/EmptyWork/emptywork.github.io/actions/workflows/codeql-analysis.yml) - -
- -## Tentang -Bahasa Lain: Bahasa Inggris, Bahasa Ambon - -Kode untuk website pribadi saya.
-Tujuan pembuatan repository ini adalah untuk menunjukan kode yang telah ditulis oleh saya dan juga berfungsi sebagai bukti kemampuan saya dalam menggunakan Javascript, HTML5 dan CSS3 +![EmptyWork's Personal Website](src/images/emptywork.github.io-header.jpg) +[![Repository Stars](https://img.shields.io/github/stars/EmptyWork/emptywork.github.io?style=for-the-badge)]() +[![Repository Forks](https://img.shields.io/github/forks/EmptyWork/emptywork.github.io?style=for-the-badge)]() +[![License](https://img.shields.io/github/license/EmptyWork/emptywork.github.io?style=for-the-badge)](https://github.com/EmptyWork/emptywork.github.io/blob/master/LICENSE) +[![Netlify Status](https://img.shields.io/netlify/08d2d578-7470-4e65-8067-93ab5e09f671?style=for-the-badge)](https://app.netlify.com/sites/emptywork/deploys) +[![CodeQL](https://img.shields.io/github/workflow/status/EmptyWork/emptywork.github.io/CodeQL?event=push&style=for-the-badge)](https://github.com/EmptyWork/emptywork.github.io/actions/workflows/codeql-analysis.yml) + +[**⚠Laporkan Bug**](https://github.com/EmptyWork/emptywork.github.io/issues/new) — [**📧Minta Fitur**](https://github.com/EmptyWork/emptywork.github.io/issues/new) + +**Bahasa Lain: [🆔Bahasa Ambon](README.abs-ID.md), [🅰Bahasa Inggris](README.md)** +## Sumber kode untuk website pribadi EmptyWork + +[EmptyWork](https://emptywork.github.io) adalah website yang responsive, memiliki design multi-page untuk website blog dengan menggunakan [11ty](https://www.11ty.dev/) sebagai Static Site Generator, [Nunjuck](https://mozilla.github.io/nunjucks/templating.html) sebagai bahasa templatingnya, dan [NetlifyCMS](https://www.netlifycms.org/) untuk Content Management + +Kamu bisa `fork` atau `clone` repository ini untuk _mengubah_ dan membuat perubahan sesuai keinginan kamu, dan kamu [**tidak diwajibkan**](https://github.com/EmptyWork/emptywork.github.io/blob/master/LICENSE) untuk memberikan kredit ke saya, tapi jika kamu mau memberi kredit tolong berikan kepada [EmptyWork](https://github.com/EmptyWork). + + +## Table Kontent +- [Instalasi](#instalasi) +- [Dukungan](#dukungan) + +### Instalasi + +`clone` atau `fork` repository ini, jika kamu melakukan `fork` kamu bisa mengubah nama repositorynya sesuai dengan milik kamu, sedangkan jika kamu `clone` maka buatlah sebuah repository baru dan upload file. Pastikan kamu memiliki [node.js](https://nodejs.org) dan `npm` pada perangkat kalian. + +Setelah itu ikuti langkah-langkah berikut: +- Pergi ke direktori lokal dimana kalian menyimpan file hasil `fork` atau `clone` +- Kemudian lakukan `npm install` +- Jalankan `npm run build` atau `npm start` jika kamu mau menggubah filenya.ile. + +### Dukungan + +Berikan ⭐ jika kamu mau! dan ikuti [EmptyWork](https://github.com/EmptyWork). diff --git a/README.md b/README.md index d224500..290d3d1 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,33 @@ -

EmptyWork's Personal Website

-

- -

+![EmptyWork's Personal Website](src/images/emptywork.github.io-header.jpg) -
- - [![CodeQL](https://github.com/EmptyWork/emptywork.github.io/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/EmptyWork/emptywork.github.io/actions/workflows/codeql-analysis.yml) - -
+[![Repository Stars](https://img.shields.io/github/stars/EmptyWork/emptywork.github.io?style=for-the-badge)]() +[![Repository Forks](https://img.shields.io/github/forks/EmptyWork/emptywork.github.io?style=for-the-badge)]() +[![License](https://img.shields.io/github/license/EmptyWork/emptywork.github.io?style=for-the-badge)](https://github.com/EmptyWork/emptywork.github.io/blob/master/LICENSE) +[![Netlify Status](https://img.shields.io/netlify/08d2d578-7470-4e65-8067-93ab5e09f671?style=for-the-badge)](https://app.netlify.com/sites/emptywork/deploys) +[![CodeQL](https://img.shields.io/github/workflow/status/EmptyWork/emptywork.github.io/CodeQL?event=push&style=for-the-badge)](https://github.com/EmptyWork/emptywork.github.io/actions/workflows/codeql-analysis.yml) -## About -Read this in: Ambonese Malay, Indonesian +[**⚠Report Bug**](https://github.com/EmptyWork/emptywork.github.io/issues/new) — [**📧Report Feature**](https://github.com/EmptyWork/emptywork.github.io/issues/new) -Source code for my personal website.
-The purpose of this repository is to showcase the code that I wrote
and as a proof of my ability to work with Javascript, HTML5 and CSS3. +**Read this in: [🆔Ambonese Malay](README.abs-ID.md), [🆔Indonesian](README.id-ID.md)** +## EmptyWork's personal website sourcecode +[EmptyWork](https://emptywork.github.io) is a fully responsive, multi-page layout JAMStack blog—website built using [11ty](https://www.11ty.dev/) as the Static Site Generator, [Nunjuck](https://mozilla.github.io/nunjucks/templating.html) templating language, and [NetlifyCMS](https://www.netlifycms.org/) for Content Management + +You can `fork` or `clone` this repo to _modify_ and make changes of your own, and it's [**not required**](https://github.com/EmptyWork/emptywork.github.io/blob/master/LICENSE) for you to credit me, but if you want you can properly linking back the credit to [EmptyWork](https://github.com/EmptyWork). + +## Table of Contents +- [Installation](#installation) +- [Support](#support-me!) + +### Installation + +`clone` or `fork` this repository and in case you `forked` then you just need to modify the name of repo else if you `cloned` then create a new repo and upload the file. Make sure you have [node.js](https://nodejs.org) and `npm` installed on your local device. + +After that follow this steps: + +- Go to your local directory and then do `npm install` +- Run the `npm run build` or `npm run start` if you want to start edit the file. + +### Support Me! + +Give a ⭐ to this repo if you like it! And follow [EmptyWork](https://github.com/EmptyWork). \ No newline at end of file diff --git a/settings.json b/settings.json new file mode 100644 index 0000000..e07c3b9 --- /dev/null +++ b/settings.json @@ -0,0 +1,3 @@ +{ + "schedules": ["Monday", "Wednesday", "Thursday", "Friday"] +} diff --git a/src/_includes/article-snippet.njk b/src/_includes/article-snippet.njk new file mode 100644 index 0000000..e809fa3 --- /dev/null +++ b/src/_includes/article-snippet.njk @@ -0,0 +1,23 @@ +
  • +
    +
    +

    {{post.data.title}}

    + {{post.date | postDate }} +
    + +

    {{post.data.description}}

    +
    + +
    +
  • \ No newline at end of file diff --git a/src/_includes/article.njk b/src/_includes/article.njk new file mode 100644 index 0000000..60851b3 --- /dev/null +++ b/src/_includes/article.njk @@ -0,0 +1,14 @@ +--- +layout: 'secondary-base.njk' +--- +
    +
    +
    + + Blog / {{ title }} + +

    {{ title }}

    + {{ content | safe }} +
    +
    +
    \ No newline at end of file diff --git a/src/_includes/base.njk b/src/_includes/base.njk new file mode 100644 index 0000000..74b2e70 --- /dev/null +++ b/src/_includes/base.njk @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ title }} + + + + + + + + + + + + {% include 'nav.njk' %} + + {% include 'header.njk' %} + + {{ content | safe}} + + {% include 'footer.njk' %} + + + + \ No newline at end of file diff --git a/src/_includes/footer.njk b/src/_includes/footer.njk new file mode 100644 index 0000000..989fb35 --- /dev/null +++ b/src/_includes/footer.njk @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/src/_includes/header.njk b/src/_includes/header.njk new file mode 100644 index 0000000..b5ee81d --- /dev/null +++ b/src/_includes/header.njk @@ -0,0 +1,109 @@ + +
    + +
    +
    +
    +
    +
    +

    + + + + + Month 2021 - + Activity + +

    +
    + +

    /EmptyWork

    + Open a new tab +
    + + + + + /homepage + +
    +
    +
    +

    + Hello, I am a + Jr. Developer +

    +

    + that just started my journey — as a full-stack developer, there's a + lot of things that I need to learn. +

    + +
    +
    +
    \ No newline at end of file diff --git a/src/_includes/nav.njk b/src/_includes/nav.njk new file mode 100644 index 0000000..f9ad34a --- /dev/null +++ b/src/_includes/nav.njk @@ -0,0 +1,94 @@ + + + \ No newline at end of file diff --git a/src/_includes/project-snippet.njk b/src/_includes/project-snippet.njk new file mode 100644 index 0000000..422cc02 --- /dev/null +++ b/src/_includes/project-snippet.njk @@ -0,0 +1,51 @@ +
  • +
    +
    +

    {{project.data.title}}

    + + {% if project.data.endDate %} + {{project.data.endDate | postYear}} + {% else %} + {{project.data.date | postYear}} - Present + {% endif %} + +
    + +

    {{project.data.description}}

    +
    + +
    +
  • \ No newline at end of file diff --git a/src/_includes/prototype-snippet.njk b/src/_includes/prototype-snippet.njk new file mode 100644 index 0000000..01cc9fc --- /dev/null +++ b/src/_includes/prototype-snippet.njk @@ -0,0 +1,93 @@ +
  • +
    +
    +
    +
    + + + + + +

    {{ post.fileSlug | truncate(12) }}.dev

    +
    +
    + + + +
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +

    {{ post.data.title }}

    +

    + {{ post.data.description }} + [id] +

    +
      +
    • + Status{% if post.data.status == 1 %} + Deploy{% else %} + Buggy{% endif %} +
    • +
    • + Tags{% for tag in post.data.tags %}{% if tag != "prototype" %} + {{ tag }}{% endif %}{% endfor %} +
    • +
    +
    + +
    +
  • \ No newline at end of file diff --git a/src/_includes/secondary-base.njk b/src/_includes/secondary-base.njk new file mode 100644 index 0000000..bb8f891 --- /dev/null +++ b/src/_includes/secondary-base.njk @@ -0,0 +1,87 @@ + + + + + + + + + + {% if author %} + + {% else %} + + {% endif %} + + + + + {% if description %} + + + + + {% else %} + + + + + {% endif %} + + + + + {% if image %} + + + + {% else %} + + + + {% endif %} + + + + + + {{ title }} + + + + + + + + + + + + + {% include 'nav.njk' %} + + {{ content | safe}} + + {% include 'footer.njk' %} + + + + \ No newline at end of file diff --git a/src/_includes/work.njk b/src/_includes/work.njk new file mode 100644 index 0000000..f11714b --- /dev/null +++ b/src/_includes/work.njk @@ -0,0 +1,21 @@ +
    +
    +
    +

    + + + Link to heading "work" + + Work +

    + + projects that I participated on or worked on. + +
    + +
    +
    \ No newline at end of file diff --git a/src/admin/config.yml b/src/admin/config.yml new file mode 100644 index 0000000..8e6bea6 --- /dev/null +++ b/src/admin/config.yml @@ -0,0 +1,47 @@ +backend: + name: git-gateway + branch: master +media_folder: "public/images/" +public_folder: "/images/" +collections: + - name: "blog" + label: "Blog" + folder: "src/blog" + create: true + slug: "{{year}}-{{month}}-{{day}}-{{slug}}" + fields: + - {label: "Title", name: "title", widget: "string"} + - {label: "Description", name: "description", widget: "string"} + - {label: "Author", name: "author", widget: "string"} + - {label: "Date", name: "date", widget: "datetime"} + - {label: "Tags", name: "tags", widget: "list", default: ["post"]} + - {label: "Cover Images", name: "image", widget: "image"} + - {label: "Body", name: "body", widget: "markdown"} + - name: "project" + label: "Project" + folder: "src/project" + create: true + slug: "{{year}}-{{month}}-{{day}}-{{slug}}" + fields: + - {label: "Title", name: "title", widget: "string"} + - {label: "Description", name: "description", widget: "string"} + - {label: "Author", name: "author", widget: "string", required: false} + - {label: "Date", name: "date", widget: "datetime"} + - {label: "End Date", name: "endDate", widget: "datetime", required: false} + - {label: "Tags", name: "tags", widget: "list", default: ["project"]} + - {label: "Cover Images", name: "image", widget: "image"} + - {label: "Link Demo", name: "linkDemo", widget: "string", required: false} + - {label: "Link Code", name: "linkCode", widget: "string", required: false} + - name: "prototype" + label: "Prototype" + folder: "src/prototype" + create: true + slug: "{{year}}-{{slug}}" + fields: + - {label: "Title", name: "title", widget: "string"} + - {label: "Status", name: "status", widget: "select", options: [{label: "Deployed", value: 1}, {label: "Buggy", value: 2}], default: [label: "Deployed", value: 1]} + - {label: "Description", name: "description", widget: "string"} + - {label: "Date", name: "date", widget: "datetime"} + - {label: "Tags", name: "tags", widget: "list", default: ["prototype"]} + - {label: "Link Demo", name: "linkDemo", widget: "string", required: false} + - {label: "Code Snippet", name: "code", widget: "text"} \ No newline at end of file diff --git a/src/admin/index.html b/src/admin/index.html new file mode 100644 index 0000000..0c6926a --- /dev/null +++ b/src/admin/index.html @@ -0,0 +1,21 @@ + + + + + + Content Manager - EmptyWork + + + + + + + + + \ No newline at end of file diff --git a/src/assets/Resume.pdf b/src/assets/Resume.pdf new file mode 100644 index 0000000..c71ab52 Binary files /dev/null and b/src/assets/Resume.pdf differ diff --git a/src/blog.njk b/src/blog.njk new file mode 100644 index 0000000..445c94e --- /dev/null +++ b/src/blog.njk @@ -0,0 +1,28 @@ +--- +title : 'Recent Articles - Blog | EmptyWork' +layout: 'secondary-base.njk' +--- +
    +
    +
    +
    +

    + + + Link to heading "Recent Articles" + + Recent Articles +

    +
    +
      + {%- for post in collections.post | reverse -%} + {% include 'article-snippet.njk' %} + {% else %} +
    • + It seems like there is no article right now... +
    • + {%- endfor -%} +
    +
    +
    +
    diff --git a/src/blog/blog.json b/src/blog/blog.json new file mode 100644 index 0000000..07e3752 --- /dev/null +++ b/src/blog/blog.json @@ -0,0 +1,6 @@ +{ + "layout": "article.njk", + "tags": "post", + "author": "EmptyWork", + "image": "/images/emptywork.png" +} \ No newline at end of file diff --git a/src/contact.njk b/src/contact.njk new file mode 100644 index 0000000..9a0a925 --- /dev/null +++ b/src/contact.njk @@ -0,0 +1,37 @@ +--- +title : 'Get in touch with me - Contact | EmptyWork' +layout: 'secondary-base.njk' +--- +
    +
    +
    +
    +

    + + + Link to heading "Contact" + + Get in touch with me. +

    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    + +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/src/css/scss/_footer.scss b/src/css/scss/_footer.scss new file mode 100644 index 0000000..87fdcb2 --- /dev/null +++ b/src/css/scss/_footer.scss @@ -0,0 +1,24 @@ +.footer { + background-color: var(--clr-background); + color: var(--clr-foreground); + padding: 0.8rem; + + &-container { + max-width: 64rem; + margin: 0 auto; + text-align: center; + } + .copyright { + font-size: 0.9rem; + margin: 1rem auto; + text-align: center; + border: 0.0625rem solid var(--clr-foreground); + width: 100%; + max-width: max-content; + padding: 0.2rem 2rem; + + @include breakpoint-up("medium") { + flex-direction: row; + } + } +} diff --git a/src/css/scss/_global.scss b/src/css/scss/_global.scss new file mode 100644 index 0000000..eacae11 --- /dev/null +++ b/src/css/scss/_global.scss @@ -0,0 +1,160 @@ +html { + scroll-behavior: smooth; + scroll-padding-top: 10rem; + scroll-padding-bottom: 10rem; +} + +html:root { + + .themes { + background-color: #ffc107; + color: #7e620e; + } + + [data-moon] { + display: none; + } + + [data-sun] { + display: block; + } + + &.dark { + + .themes { + background-color: var(--clr-accent); + color: var(--clr-accent-dark); + } + + [data-sun] { + display: none; + } + + [data-moon] { + display: block; + } + } +} + + +*, +*::after, +*::before { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +body { + display: flex; + flex-direction: column; + min-height: 100vh; + background-color: var(--clr-background-900); + font-family: "Montserrat", sans-serif; + color: var(--clr-foreground); + line-height: 1.6; + overflow-x: hidden; +} + +a, +a:active, +a:hover, +a:focus-visible { + color: inherit; + text-decoration: none; +} + +a:hover, +a:focus-visible { + color: var(--clr-accent); +} + +a[href] { + position: relative; + + .new-tab-warning { + position: absolute; + width: max-content; + background-color: hsl(0, 0%, 13%); + font-weight: normal; + letter-spacing: normal; + color: var(--clr-white); + padding: 0.3rem; + font-size: 0.7rem; + border-radius: 0.3rem; + margin-top: 0.5rem; + top: 100%; + left: 0; + visibility: hidden; + pointer-events: none; + text-transform: capitalize; + transition: all 300ms ease-out; + transform: translateY(-0.3rem); + z-index: 90; + } + + &:focus-visible { + .new-tab-warning { + visibility: visible; + transform: translateY(0); + pointer-events: unset; + } + } +} + +::selection { + background-color: var(--clr-accent); + color: var(--clr-white); +} + +.t-all { + transition: all 300ms ease-in; +} + +.no-scroll { + @include breakpoint-down("small") { + overflow: hidden !important; + } +} + +ul, +li { + margin: 0; + padding: 0; +} + +li { + list-style: none; +} + +*:focus-visible { + outline: 0.125rem solid var(--clr-accent-dark); +} + +.highlight { + background-color: var(--clr-black); + padding: 0.2rem 0.6rem; + color: var(--clr-white); +} + +.header-link__access { + text-decoration: none !important; +} + +.sr-only { + border: 0; + clip: rect(0 0 0 0); + height: 0.0625rem; + margin: -0.0625rem; + overflow: hidden; + padding: 0; + position: absolute; + width: 0.0625rem; +} + +@media (prefers-reduced-motion) { + .prototype-reader, + .data { + transform: unset; + } +} diff --git a/src/css/scss/_header.scss b/src/css/scss/_header.scss new file mode 100644 index 0000000..9dc400c --- /dev/null +++ b/src/css/scss/_header.scss @@ -0,0 +1,329 @@ +.header { + display: flex; + align-items: center; + justify-content: center; + height: 100vh; + flex-direction: column; + background-color: var(--clr-background); + box-shadow: 0 0.625rem 1.25rem hsla(270, 71%, 22%, 0.2); + z-index: 3; + position: relative; + + .decoration { + position: absolute; + width: 100%; + height: 100%; + user-select: none; + pointer-events: none; + + .relative { + position: relative; + } + } +} + +.title { + &-container { + display: flex; + flex-direction: column; + gap: 2rem; + max-width: 64rem; + margin: 0 auto; + padding: 3rem 2rem; + align-items: flex-start; + z-index: 0; + } + + &-leftside { + display: flex; + flex: 0 0 auto; + flex-direction: column; + gap: 0.4rem; + width: 100%; + } + + &-rightside { + width: 100%; + font-size: 1.2rem; + + h2 { + margin-bottom: 0.5rem; + text-transform: uppercase; + letter-spacing: 0.1rem; + } + + @include breakpoint-up("large") { + flex: 1 0 auto; + width: 70%; + } + } + + &-link { + display: block; + width: max-content; + } + + &-activity { + display: flex; + flex-direction: row; + align-items: center; + margin-bottom: -0.4rem; + + &__details { + margin-left: 0.4rem; + font-weight: 300; + user-select: none; + color: var(--clr-foreground-900); + + #month { + font-weight: 600; + } + + #activity { + display: inline-block; + position: relative; + font-weight: 400; + z-index: 0; + + &::before { + content: ""; + position: absolute; + width: 70%; + height: 0.2rem; + bottom: 0; + border-bottom: 0.1rem dashed var(--clr-accent); + } + } + } + + svg { + width: 1.2rem; + } + } + + &-text { + font-size: 2.4rem; + font-weight: 700; + margin-left: -0.1rem; + transition: font-size 300ms ease-in; + } + + &-action { + display: flex; + flex-direction: row; + margin-top: 1.2rem; + color: var(--clr-white); + background: var(--clr-accent-dark); + background-image: linear-gradient(-90deg, var(--clr-accent), var(--clr-accent-dark)); + border-radius: 0.3rem; + padding: 0.5rem 1.5rem; + align-items: center; + gap: 0.4rem; + cursor: pointer; + font-size: 1.3rem; + transition: all 300ms ease-out; + + &:hover, + &:focus-visible { + color: hsl(0, 0%, 80%); + background-color: var(--clr-accent); + filter: brightness(140%); + box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4); + transform: scale(1.04); + } + + svg { + height: 1.3rem; + width: 1.3rem; + } + + &[disabled] { + cursor: not-allowed; + &:hover { + transform: scale(0.96); + box-shadow: inset 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4); + filter: grayscale(100); + } + } + + &.secondary { + background-color: var(--clr-background-800); + color: var(--clr-foreground-800); + background-image: none; + box-shadow: none; + + &:hover, + &:focus-visible { + filter: brightness(100%); + transform: scale(0.98); + } + } + + &__group { + display: flex; + gap: 0.6rem; + } + } + + &-submenu { + display: flex; + position: relative; + margin-top: -0.4rem; + margin-left: 0.4rem; + align-items: center; + gap: 0.3rem; + color: var(--clr-foreground-800); + user-select: none; + z-index: 0; + + svg { + height: 1rem; + transform: rotate(180deg); + } + } +} + +.nav { + background-color: var(--clr-background); + flex-grow: 0; + flex-shrink: 0; + position: sticky; + top: 0; + padding: 0.8rem; + z-index: 20; + + &-container { + width: 100%; + max-width: 64rem; + margin: 0 auto; + gap: 1rem; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + + .menubar { + font-weight: 600; + flex: 1; + justify-content: flex-end; + } + } + + + .rightside { + display: flex; + gap: 0.2rem; + } + + .brand { + display: flex; + gap: 0.5rem; + &-title { + font-size: 1.3rem; + font-weight: 700; + } + &-logo { + display: flex; + align-items: center; + } + } + .themes { + transition: background-color 200ms ease-in; + border-radius: 50%; + } + + .themes, + &-mobile { + cursor: pointer; + background: none; + border: none; + display: block; + height: 2rem; + width: 2rem; + padding: 0.4rem; + color: inherit; + + svg { + width: 100%; + height: 100%; + } + + &__section { + margin-top: 3.605625rem; + right: 0; + position: fixed; + top: 0; + left: 0; + height: calc(100% - 3.605625rem); + background-color: var(--clr-background); + color: var(--clr-foreground); + z-index: 20; + display: flex; + flex-direction: column; + align-items: center; + gap: 2rem; + justify-content: center; + + &.not-showing { + height: 0%; + overflow-y: hidden; + visibility: hidden; + } + + @include breakpoint-up("medium") { + height: 0%; + overflow-y: hidden; + visibility: hidden; + } + + li { + list-style: none; + } + } + } + + &-mobile { + @include breakpoint-up("medium") { + display: none; + } + } + + ul { + display: none; + gap: 1rem; + align-items: center; + + @include breakpoint-up("medium") { + display: flex; + } + + li { + list-style: none; + text-transform: uppercase; + letter-spacing: 0.1rem; + a { + position: relative; + z-index: 1; + + &:hover, + &:focus-visible { + color: var(--clr-foreground); + z-index: 1; + &::before { + width: 100%; + } + } + + &::before { + content: ""; + position: absolute; + width: 0%; + background-color: var(--clr-accent); + height: 110%; + transition: all 150ms ease-in; + z-index: -1; + } + } + } + } +} diff --git a/src/css/scss/_main.scss b/src/css/scss/_main.scss new file mode 100644 index 0000000..44aa752 --- /dev/null +++ b/src/css/scss/_main.scss @@ -0,0 +1,1066 @@ +.main { + background-color: var(--clr-background-900); + flex: 1 0 auto; + display: flex; + flex-direction: column; + gap: 6rem; + + &-container { + max-width: 64rem; + margin: 0 auto; + padding: 3rem 2rem; + width: 100%; + } + + .section-header { + display: flex; + flex-direction: row; + align-items: center; + gap: 2rem; + font-size: 1.2rem; + text-transform: uppercase; + letter-spacing: 0.1rem; + + .header-title { + display: flex; + gap: 0.6rem; + + a { + height: max-content; + } + } + + span { + text-transform: none; + letter-spacing: 0; + } + + @include breakpoint-down("large") { + flex-direction: column; + align-items: flex-start; + gap: 0; + + span { + &::before { + display: none; + } + } + } + + .header-desc { + display: block; + position: relative; + font-size: 0.9rem; + color: var(--clr-foreground-700); + + &::before { + content: ""; + position: absolute; + left: 0; + border: 0.1875rem solid var(--clr-foreground); + top: 50%; + transform: translateY(-50%); + margin-left: -1rem; + border-radius: 50%; + } + } + } +} + +.card { + background-color: #333333; + background-image: linear-gradient(transparent, var(--clr-accent-dark)); + background-position: center; + background-size: cover; + background-clip: border-box; + box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4); + border-radius: 0.3rem; + padding: 10rem 0 0; + width: 28ch; + position: relative; + overflow: hidden; + flex: 0 0 auto; + color: var(--clr-white); + + &:hover { + transform: scale(1.1); + z-index: 10; + } + + &-empty { + width: 100%; + padding: 2rem; + box-shadow: inset 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.2); + background: var(--clr-background-900); + color: var(--clr-foreground-700); + + &:hover, + &:focus-visible { + transform: scale(1); + } + } + + &s { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 1rem; + margin-top: 2rem; + + &.nocentered { + justify-content: flex-start; + } + } + + &-body { + background-image: linear-gradient( + hsla(0, 0%, 0%, 0), + hsla(0, 0%, 0%, 0.4) 10%, + hsla(0, 0%, 0%, 1) + ); + height: 100%; + display: flex; + flex-direction: column; + + header, + .description-area { + flex: 0 0 auto; + padding: 0 1.5rem; + } + + .description-area { + height: 3.2rem; + overflow: hidden; + } + + h2 { + font-size: 1.2rem; + line-height: 1.2rem; + height: 1.2rem; + overflow: hidden; + } + + small { + display: block; + color: var(--clr-accent-light); + font-weight: 600; + margin-bottom: 1rem; + margin-top: 0.3rem; + } + + .more-links { + display: flex; + flex: 1 0 auto; + align-items: flex-end; + width: 100%; + justify-content: space-between; + + span { + display: block; + margin-top: 1rem; + padding: 1rem 1.5rem; + color: var(--clr-disabled-text); + cursor: not-allowed; + user-select: none; + } + + a { + display: flex; + margin-top: 1rem; + padding: 1rem 1.5rem; + user-select: none; + position: relative; + z-index: 10; + gap: 0.3rem; + + svg { + flex: 0 0 auto; + height: 1.5rem; + } + + &:hover, + &:focus-visible { + color: var(--clr-white); + &::before { + width: 100%; + } + } + + &::before { + content: ""; + position: absolute; + width: 0%; + left: 0; + margin-top: -1rem; + background-color: var(--clr-accent); + height: 100%; + transition: all 150ms ease-in; + z-index: -1; + } + } + } + } +} + +.prototype { + margin-bottom: 4rem; + margin-top: 4rem; + + &s { + display: flex; + flex-direction: column; + align-items: center; + flex-wrap: wrap; + justify-content: center; + margin-top: 3rem; + margin-bottom: 8rem; + + gap: 7rem; + @include breakpoint-down("medium") { + flex-direction: row; + } + } + + &-header { + margin-bottom: 1rem; + } + + &-card { + align-items: flex-end; + align-items: center; + display: flex; + border-radius: 0.3rem; + width: 100%; + + @include breakpoint-down("medium") { + flex-direction: column; + } + + &:nth-of-type(odd) { + .prototype-header { + order: 2; + + &::before { + background-color: var(--clr-accent-dark); + transform: rotate(-6deg); + } + + @include breakpoint-down("medium") { + order: 0; + } + } + + .prototype-description { + .text { + padding: 1rem; + padding-right: 2rem; + } + + .links { + justify-content: flex-start; + padding-left: 1rem; + } + } + } + } + + &-description { + flex: 1 1 auto; + z-index: 5; + + ul { + li { + margin-top: 0.3rem; + } + } + + h3 { + margin-bottom: 1rem; + } + + .text { + padding: 1rem; + padding-left: 2rem; + + .language { + display: inline-block; + padding: 0 0.1rem; + background-color: var(--clr-accent-dark); + color: var(--clr-white); + border-radius: 0.3rem; + user-select: none; + font-size: 0.8rem; + } + + @include breakpoint-down("medium") { + padding-left: 0; + } + + ul { + margin-top: 0.8rem; + border-radius: 0.3rem; + background-color: hsl(0, 0%, 10%); + padding: 1rem; + } + } + + .links { + display: flex; + align-items: flex-end; + justify-content: flex-end; + padding-right: 1rem; + + a { + background-color: var(--clr-accent); + color: var(--clr-white); + padding: 0.5rem 1rem; + border-radius: 0.3rem; + transition: all 300ms ease-out; + display: flex; + + svg { + flex: 0 0 auto; + height: 1.5rem; + } + + &:hover { + filter: brightness(120%); + } + } + } + } + + &-more { + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + + i { + display: inline-block; + font-style: normal; + padding: 0.2rem 0.7rem; + background-color: var(--clr-background-900); + border-radius: 0.3rem; + + &.error { + background-color: hsl(0, 100%, 43%); + color: var(--clr-white); + } + + &.active { + background-color: #067e06; + color: var(--clr-white); + } + } + + .status { + background-image: linear-gradient( + -90deg, + var(--clr-accent), + var(--clr-accent-dark) + ); + padding: 0 0.7rem; + display: flex; + align-items: center; + border-radius: 0.3rem; + color: white; + margin-right: 0.3rem; + } + } + + &-header { + flex: 0 0 auto; + position: relative; + width: 25rem; + height: 20rem; + color: var(--clr-white); + + @include breakpoint-down("medium") { + width: 100%; + max-width: 25rem; + } + + &:hover { + .note { + transform: scale(1.1); + } + } + + &::before { + content: ""; + position: absolute; + width: 100%; + height: 100%; + transform: rotate(6deg); + background: var(--clr-accent); + left: -0.7rem; + border-radius: 40% 20% / 10%; + } + } + + .note { + display: flex; + position: relative; + flex-direction: column; + background-color: hsl(0, 0%, 13%); + border-radius: 0.6rem; + box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4); + height: 100%; + transition: all 300ms ease-in-out; + z-index: 0; + + & > svg { + position: absolute; + right: 0.1rem; + bottom: 0.1rem; + color: hsl(0, 0%, 11%); + z-index: -1; + } + + article { + padding: 1rem; + height: 100%; + overflow-y: auto; + scrollbar-width: none; + position: relative; + + &::-webkit-scrollbar { + width: 0; + } + } + + &-header { + display: flex; + height: 2.5rem; + padding: 0 1rem; + width: 100%; + justify-content: space-between; + box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4); + flex: 0 0 auto; + + div { + display: flex; + align-items: center; + font-weight: 600; + gap: 0.2rem; + + .dot { + height: 0.9375rem; + width: 0.9375rem; + background-color: hsl(0, 100%, 43%); + border-radius: 50%; + + &:first-of-type { + background-color: green; + } + + &:nth-of-type(2) { + background-color: yellow; + } + } + } + } + } +} + +.work, +.articles { + padding-top: 4rem; +} + +.contact { + .form-input { + display: flex; + flex-direction: column; + + &__captcha { + margin-top: 1rem; + margin-bottom: 1rem; + } + + label { + margin:2em 0 .5em 0; + } + + input, textarea { + width: 100%; + padding: 1rem; + border: none; + background-color: var(--clr-background); + color: var(--clr-foreground-900); + resize: none; + } + + input[type=submit] { + border: none; + color: var(--clr-white); + background-color: var(--clr-accent); + } + } +} + +.aboutme { + background-color: var(--clr-accent); + color: var(--clr-white); + + .adds { + font-size: 0.9rem; + padding: 1rem; + } + + a { + text-decoration: underline; + text-underline-offset: 0.4rem; + } + + a:hover, + a:focus-visible { + color: #d0d0d0; + } + + ::selection { + background-color: #333333; + } + + h4 { + text-transform: uppercase; + letter-spacing: 0.1rem; + } + + .main-container { + display: flex; + flex-direction: column; + } + + .flex { + display: flex; + flex-direction: row; + border-radius: 0.3rem; + margin-top: 1rem; + + &-header { + display: flex; + padding: 0 1rem; + width: 100%; + justify-content: space-between; + box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4); + flex: 0 0 auto; + + div { + display: flex; + align-items: center; + font-weight: 600; + gap: 0.2rem; + + .dot { + height: 0.9375rem; + width: 0.9375rem; + background-color: hsl(0, 100%, 43%); + border-radius: 50%; + + &:first-of-type { + background-color: green; + } + + &:nth-of-type(2) { + background-color: yellow; + } + } + } + } + + .lists { + display: flex; + justify-content: space-around; + width: 100%; + } + + &.tools { + background-color: hsl(0, 0%, 13%); + box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4); + margin-bottom: -9rem; + + h2 { + padding: 1rem; + } + + .lists { + background-color: hsl(0, 0%, 11%); + border-radius: 0.3rem; + padding: 2rem; + } + } + + &.languages { + filter: brightness(110%); + box-shadow: inset 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4); + background-color: var(--clr-accent-dark); + padding: 2rem; + + h2 { + padding: 1rem 0; + } + + ul { + margin-top: 0.2rem; + } + } + + &:not(:first-of-type) { + margin-top: 5rem; + justify-content: space-around; + flex-direction: column; + + ul { + font-size: 1.1rem; + font-weight: 600; + + li { + font-weight: 500; + font-size: 1rem; + margin-top: 0.5rem; + &:first-of-type { + margin-top: 0.8rem; + } + } + } + + @include breakpoint-down("medium") { + align-items: flex-start; + + .lists { + flex-direction: column; + } + + ul > li { + display: inline-block; + margin-top: 0; + } + } + } + + @include breakpoint-down("medium") { + flex-direction: column; + align-items: center; + } + } + + .data { + position: relative; + min-width: 25rem; + height: 20rem; + + @include breakpoint-down("medium") { + width: 100%; + max-width: 25rem; + min-width: unset; + } + + &:hover { + .note { + transform: scale(1.1); + } + } + + &::before { + content: ""; + position: absolute; + width: 100%; + height: 100%; + background-color: hsl(0, 100%, 43%); + left: -0.7rem; + border-radius: 40% 20% / 10%; + } + } + + article { + padding: 1rem; + height: 100%; + overflow-y: auto; + + scrollbar-width: none; + + &::-webkit-scrollbar { + width: 0; + } + + li { + padding-left: 0.6rem; + } + } + + .explain { + display: flex; + align-items: center; + margin-top: 1rem; + padding: 1rem; + font-size: 1.2rem; + + @include breakpoint-up("large") { + padding-left: 3rem; + } + } + + .note { + transform: rotate(-3deg); + display: flex; + flex: 0 0 auto; + position: relative; + flex-direction: column; + background-color: hsl(0, 0%, 13%); + border-radius: 0.6rem; + box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4); + height: 100%; + transition: all 300ms ease-in-out; + + & > svg { + position: absolute; + right: 0.1rem; + bottom: 0.1rem; + color: hsl(0, 0%, 11%); + z-index: -1; + } + + &-heading { + font-weight: 600; + display: block; + text-transform: uppercase; + letter-spacing: .1em; + } + + &-header { + display: flex; + height: 2.5rem; + padding: 0 1rem; + width: 100%; + justify-content: space-between; + box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4); + flex: 0 0 auto; + + div { + display: flex; + align-items: center; + font-weight: 600; + gap: 0.2rem; + + .dot { + height: 0.9375rem; + width: 0.9375rem; + background-color: hsl(0, 100%, 43%); + border-radius: 50%; + + &:first-of-type { + background-color: green; + } + + &:nth-of-type(2) { + background-color: yellow; + } + } + } + } + } +} + +.post { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + color: var(--clr-foreground); + background-color: var(--clr-background-900); + line-height: 1.6; + margin: auto; + + a { + font-weight: 600; + text-decoration: none; + color: var(--clr-href); + &:visited { + + color: var(--clr-href-visited); + } + + &:hover { + color: var(--clr-href-visited); + } + + &:focus-visible { + outline: thin dotted; + } + &:hover, + &:active { + outline: 0; + } + } + + span { + a:hover,a:visited,a:active,a:focus-visible { + color: var(--clr-href); + } + } + + ::selection { + background: var(--clr-accent-dark); + color: var(--clr-white); + } + + a::selection { + background: var(--clr-accent-dark); + color: var(--clr-white); + } + + p { + margin: 1rem 0; + } + + img { + max-width: 100%; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + font-weight: 600; + color: var(--clr-foreground); + line-height: 1em; + padding: 1rem 0; + } + h4, + h5, + h6 { + font-weight: bold; + } + h1 { + font-size: 2.5rem; + } + h2 { + font-size: 2rem; + } + h3 { + font-size: 1.5rem; + } + h4 { + font-size: 1.2rem; + } + h5 { + font-size: 1rem; + } + h6 { + font-size: 0.9rem; + } + + blockquote { + color: var(--clr-foreground-900); + margin: 0; + padding-left: 2em; + border-left: 0.5em var(--clr-accent) solid; + } + + hr { + display: block; + height: 2px; + border: 0; + border-top: 1px solid var(--clr-accent); + border-bottom: 1px solid var(--clr-accent-light); + margin: 1em 0; + padding: 0; + } + + pre, + code, + kbd, + samp { + background-color: var(--clr-background); + color: var(--clr-foreground-700); + font-family: monospace, monospace; + border-radius: 0.3rem; + padding: 0.1rem; + font-size: 0.98rem; + box-shadow: inset 0 0.0625rem 0.625rem hsla(0, 0%, 0%, 0.2); + } + + pre { + background-color: var(--clr-background); + padding: 1rem; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; + code { + box-shadow: none; + background-color: transparent; + } + } + + b, + strong { + font-weight: bold; + } + + dfn { + font-style: italic; + } + + ins { + background: #ff9; + color: #000; + text-decoration: none; + } + + mark { + background: #ff0; + color: #000; + font-style: italic; + font-weight: bold; + } + + sub, + sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + sup { + top: -0.5rem; + } + sub { + bottom: -0.25rem; + } + + ul, + ol { + margin: 1em 0; + padding: 0 0 0 2rem; + } + ul li { + list-style-type: disc; + } + ol li { + list-style-type: decimal; + } + li p:last-child { + margin: 0; + } + dd { + margin: 0 0 0 2rem; + } + + img { + border: 0; + vertical-align: middle; + } + + table { + border-collapse: collapse; + overflow-x: scroll; + border-spacing: 0; + width: 100%; + background-color: var(--clr-background); + border: 0.0625rem solid var(--clr-accent-dark); + box-shadow: inset 0 0.0625rem 0.625rem hsla(0, 0%, 0%, 0.2); + + td,th { + padding: 1rem; + } + + tr { + border: 0.0625rem solid var(--clr-background-800); + } + + th { + border-bottom: 0.25rem solid var(--clr-accent); + } + + td { + vertical-align: top; + } + + &.properties { + th { + border-bottom: 0.0625rem solid var(--clr-background-800); + border-left: 0.25rem solid var(--clr-accent); + } + } + } + + .table-of-contents { + .toc-container-header { + font-weight: 700; + } + + ul { + margin: 0; + + ul { + li { + list-style: circle; + } + } + } + } + + @media print { + * { + background: transparent !important; + color: var(--clr-accent-dark) !important; + filter: none !important; + -ms-filter: none !important; + } + body { + font-size: 12pt; + max-width: 100%; + } + a, + a:visited { + text-decoration: underline; + } + hr { + height: 1px; + border: 0; + border-bottom: 1px solid var(--clr-accent-dark); + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + padding-right: 1em; + page-break-inside: avoid; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page :left { + margin: 15mm 20mm 15mm 10mm; + } + @page :right { + margin: 15mm 10mm 15mm 20mm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + } +} diff --git a/src/css/scss/_mixin.scss b/src/css/scss/_mixin.scss new file mode 100644 index 0000000..53b98aa --- /dev/null +++ b/src/css/scss/_mixin.scss @@ -0,0 +1,22 @@ +$breakpoints-up: ( + "medium": "40em", + "large": "64em", + "xlarge": "87.5em", +); +$breakpoints-down: ( + "small": "39.9375em", + "medium": "63.9375em", + "large": "87.4375em", +); + +@mixin breakpoint-up($size) { + @media screen and (min-width: map-get($breakpoints-up, $size)) { + @content; + } +} + +@mixin breakpoint-down($size) { + @media screen and (max-width: map-get($breakpoints-down, $size)) { + @content; + } +} diff --git a/src/css/scss/_vars.scss b/src/css/scss/_vars.scss new file mode 100644 index 0000000..be3c66b --- /dev/null +++ b/src/css/scss/_vars.scss @@ -0,0 +1,49 @@ +html:root { + --clr-accent: hsl(270, 50%, 40%); + --clr-accent-light: hsl(270, 84%, 72%); + --clr-accent-dark: hsl(270, 71%, 22%); + + --clr-href: hsl(270, 80%, 50%); + --clr-href-visited: hsl(270, 70%, 22%); + + --clr-background: hsl(0, 0%, 95%); + --clr-background-900: hsl(0, 0%, 88%); + --clr-background-800: hsl(0, 0%, 75%); + --clr-background-700: hsl(0, 0%, 63%); + --clr-foreground: hsl(0, 0%, 10%); + --clr-foreground-900: hsl(0, 0%, 13%); + --clr-foreground-800: hsl(0, 0%, 25%); + --clr-foreground-700: hsl(0, 0%, 38%); + + --clr-disabled-text: hsl(0, 0%, 50%); + --clr-white: hsl(0, 0%, 100%); + --clr-black: hsl(0, 0%, 0%); + + &.sunglow { + --clr-accent: hsl(40, 56%, 40%); + --clr-accent-light: hsl(40, 56%, 72%); + --clr-accent-dark: hsl(40, 56%, 22%); + + --clr-background: hsl(40, 56%, 95%); + --clr-background-900: hsl(40, 56%, 88%); + --clr-background-800: hsl(40, 56%, 75%); + --clr-background-700: hsl(40, 56%, 63%); + --clr-foreground: hsl(40, 56%, 10%); + --clr-foreground-900: hsl(40, 56%, 13%); + --clr-foreground-800: hsl(40, 56%, 25%); + --clr-foreground-700: hsl(40, 56%, 38%); + } + + &.dark { + --clr-href: hsl(270, 84%, 72%); + --clr-href-visited: hsl(270, 50%, 40%); + --clr-background: hsl(0, 0%, 10%); + --clr-background-900: hsl(0, 0%, 13%); + --clr-background-800: hsl(0, 0%, 25%); + --clr-background-700: hsl(0, 0%, 38%); + --clr-foreground: hsl(0, 0%, 95%); + --clr-foreground-900: hsl(0, 0%, 88%); + --clr-foreground-800: hsl(0, 0%, 75%); + --clr-foreground-700: hsl(0, 0%, 63%); + } +} diff --git a/src/css/style.css b/src/css/style.css new file mode 100644 index 0000000..a1dda30 --- /dev/null +++ b/src/css/style.css @@ -0,0 +1,1994 @@ +html:root { + --clr-accent: hsl(270, 50%, 40%); + --clr-accent-light: hsl(270, 84%, 72%); + --clr-accent-dark: hsl(270, 71%, 22%); + --clr-href: hsl(270, 80%, 50%); + --clr-href-visited: hsl(270, 70%, 22%); + --clr-background: hsl(0, 0%, 95%); + --clr-background-900: hsl(0, 0%, 88%); + --clr-background-800: hsl(0, 0%, 75%); + --clr-background-700: hsl(0, 0%, 63%); + --clr-foreground: hsl(0, 0%, 10%); + --clr-foreground-900: hsl(0, 0%, 13%); + --clr-foreground-800: hsl(0, 0%, 25%); + --clr-foreground-700: hsl(0, 0%, 38%); + --clr-disabled-text: hsl(0, 0%, 50%); + --clr-white: hsl(0, 0%, 100%); + --clr-black: hsl(0, 0%, 0%); +} + +html:root.sunglow { + --clr-accent: hsl(40, 56%, 40%); + --clr-accent-light: hsl(40, 56%, 72%); + --clr-accent-dark: hsl(40, 56%, 22%); + --clr-background: hsl(40, 56%, 95%); + --clr-background-900: hsl(40, 56%, 88%); + --clr-background-800: hsl(40, 56%, 75%); + --clr-background-700: hsl(40, 56%, 63%); + --clr-foreground: hsl(40, 56%, 10%); + --clr-foreground-900: hsl(40, 56%, 13%); + --clr-foreground-800: hsl(40, 56%, 25%); + --clr-foreground-700: hsl(40, 56%, 38%); +} + +html:root.dark { + --clr-href: hsl(270, 84%, 72%); + --clr-href-visited: hsl(270, 50%, 40%); + --clr-background: hsl(0, 0%, 10%); + --clr-background-900: hsl(0, 0%, 13%); + --clr-background-800: hsl(0, 0%, 25%); + --clr-background-700: hsl(0, 0%, 38%); + --clr-foreground: hsl(0, 0%, 95%); + --clr-foreground-900: hsl(0, 0%, 88%); + --clr-foreground-800: hsl(0, 0%, 75%); + --clr-foreground-700: hsl(0, 0%, 63%); +} + +html { + scroll-behavior: smooth; + scroll-padding-top: 10rem; + scroll-padding-bottom: 10rem; +} + +html:root .themes { + background-color: #ffc107; + color: #7e620e; +} + +html:root [data-moon] { + display: none; +} + +html:root [data-sun] { + display: block; +} + +html:root.dark .themes { + background-color: var(--clr-accent); + color: var(--clr-accent-dark); +} + +html:root.dark [data-sun] { + display: none; +} + +html:root.dark [data-moon] { + display: block; +} + +*, +*::after, +*::before { + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 0; +} + +body { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + min-height: 100vh; + background-color: var(--clr-background-900); + font-family: "Montserrat", sans-serif; + color: var(--clr-foreground); + line-height: 1.6; + overflow-x: hidden; +} + +a, +a:active, +a:hover, +a:focus-visible { + color: inherit; + text-decoration: none; +} + +a:hover, +a:focus-visible { + color: var(--clr-accent); +} + +a[href] { + position: relative; +} + +a[href] .new-tab-warning { + position: absolute; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + background-color: #212121; + font-weight: normal; + letter-spacing: normal; + color: var(--clr-white); + padding: 0.3rem; + font-size: 0.7rem; + border-radius: 0.3rem; + margin-top: 0.5rem; + top: 100%; + left: 0; + visibility: hidden; + pointer-events: none; + text-transform: capitalize; + -webkit-transition: all 300ms ease-out; + transition: all 300ms ease-out; + -webkit-transform: translateY(-0.3rem); + transform: translateY(-0.3rem); + z-index: 90; +} + +a[href]:focus-visible .new-tab-warning { + visibility: visible; + -webkit-transform: translateY(0); + transform: translateY(0); + pointer-events: unset; +} + +::-moz-selection { + background-color: var(--clr-accent); + color: var(--clr-white); +} + +::selection { + background-color: var(--clr-accent); + color: var(--clr-white); +} + +.t-all { + -webkit-transition: all 300ms ease-in; + transition: all 300ms ease-in; +} + +@media screen and (max-width: 39.9375em) { + .no-scroll { + overflow: hidden !important; + } +} + +ul, +li { + margin: 0; + padding: 0; +} + +li { + list-style: none; +} + +*:focus-visible { + outline: 0.125rem solid var(--clr-accent-dark); +} + +.highlight { + background-color: var(--clr-black); + padding: 0.2rem 0.6rem; + color: var(--clr-white); +} + +.header-link__access { + text-decoration: none !important; +} + +.sr-only { + border: 0; + clip: rect(0 0 0 0); + height: 0.0625rem; + margin: -0.0625rem; + overflow: hidden; + padding: 0; + position: absolute; + width: 0.0625rem; +} + +@media (prefers-reduced-motion) { + .prototype-reader, + .data { + -webkit-transform: unset; + transform: unset; + } +} + +.header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + height: 100vh; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + background-color: var(--clr-background); + -webkit-box-shadow: 0 0.625rem 1.25rem rgba(56, 16, 96, 0.2); + box-shadow: 0 0.625rem 1.25rem rgba(56, 16, 96, 0.2); + z-index: 3; + position: relative; +} + +.header .decoration { + position: absolute; + width: 100%; + height: 100%; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; +} + +.header .decoration .relative { + position: relative; +} + +.title-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + gap: 2rem; + max-width: 64rem; + margin: 0 auto; + padding: 3rem 2rem; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + z-index: 0; +} + +.title-leftside { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + gap: 0.4rem; + width: 100%; +} + +.title-rightside { + width: 100%; + font-size: 1.2rem; +} + +.title-rightside h2 { + margin-bottom: 0.5rem; + text-transform: uppercase; + letter-spacing: 0.1rem; +} + +@media screen and (min-width: 64em) { + .title-rightside { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + width: 70%; + } +} + +.title-link { + display: block; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; +} + +.title-activity { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-bottom: -0.4rem; +} + +.title-activity__details { + margin-left: 0.4rem; + font-weight: 300; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + color: var(--clr-foreground-900); +} + +.title-activity__details #month { + font-weight: 600; +} + +.title-activity__details #activity { + display: inline-block; + position: relative; + font-weight: 400; + z-index: 0; +} + +.title-activity__details #activity::before { + content: ""; + position: absolute; + width: 70%; + height: 0.2rem; + bottom: 0; + border-bottom: 0.1rem dashed var(--clr-accent); +} + +.title-activity svg { + width: 1.2rem; +} + +.title-text { + font-size: 2.4rem; + font-weight: 700; + margin-left: -0.1rem; + -webkit-transition: font-size 300ms ease-in; + transition: font-size 300ms ease-in; +} + +.title-action { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + margin-top: 1.2rem; + color: var(--clr-white); + background: var(--clr-accent-dark); + background-image: -webkit-gradient(linear, right top, left top, from(var(--clr-accent)), to(var(--clr-accent-dark))); + background-image: linear-gradient(-90deg, var(--clr-accent), var(--clr-accent-dark)); + border-radius: 0.3rem; + padding: 0.5rem 1.5rem; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + gap: 0.4rem; + cursor: pointer; + font-size: 1.3rem; + -webkit-transition: all 300ms ease-out; + transition: all 300ms ease-out; +} + +.title-action:hover, .title-action:focus-visible { + color: #cccccc; + background-color: var(--clr-accent); + -webkit-filter: brightness(140%); + filter: brightness(140%); + -webkit-box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + -webkit-transform: scale(1.04); + transform: scale(1.04); +} + +.title-action svg { + height: 1.3rem; + width: 1.3rem; +} + +.title-action[disabled] { + cursor: not-allowed; +} + +.title-action[disabled]:hover { + -webkit-transform: scale(0.96); + transform: scale(0.96); + -webkit-box-shadow: inset 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + box-shadow: inset 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + -webkit-filter: grayscale(100); + filter: grayscale(100); +} + +.title-action.secondary { + background-color: var(--clr-background-800); + color: var(--clr-foreground-800); + background-image: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.title-action.secondary:hover, .title-action.secondary:focus-visible { + -webkit-filter: brightness(100%); + filter: brightness(100%); + -webkit-transform: scale(0.98); + transform: scale(0.98); +} + +.title-action__group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + gap: 0.6rem; +} + +.title-submenu { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: relative; + margin-top: -0.4rem; + margin-left: 0.4rem; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + gap: 0.3rem; + color: var(--clr-foreground-800); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + z-index: 0; +} + +.title-submenu svg { + height: 1rem; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} + +.nav { + background-color: var(--clr-background); + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + position: -webkit-sticky; + position: sticky; + top: 0; + padding: 0.8rem; + z-index: 20; +} + +.nav-container { + width: 100%; + max-width: 64rem; + margin: 0 auto; + gap: 1rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.nav-container .menubar { + font-weight: 600; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; +} + +.nav .rightside { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + gap: 0.2rem; +} + +.nav .brand { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + gap: 0.5rem; +} + +.nav .brand-title { + font-size: 1.3rem; + font-weight: 700; +} + +.nav .brand-logo { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.nav .themes { + -webkit-transition: background-color 200ms ease-in; + transition: background-color 200ms ease-in; + border-radius: 50%; +} + +.nav .themes, .nav-mobile { + cursor: pointer; + background: none; + border: none; + display: block; + height: 2rem; + width: 2rem; + padding: 0.4rem; + color: inherit; +} + +.nav .themes svg, .nav-mobile svg { + width: 100%; + height: 100%; +} + +.nav .themes__section, .nav-mobile__section { + margin-top: 3.605625rem; + right: 0; + position: fixed; + top: 0; + left: 0; + height: calc(100% - 3.605625rem); + background-color: var(--clr-background); + color: var(--clr-foreground); + z-index: 20; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + gap: 2rem; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.nav .themes__section.not-showing, .nav-mobile__section.not-showing { + height: 0%; + overflow-y: hidden; + visibility: hidden; +} + +@media screen and (min-width: 40em) { + .nav .themes__section, .nav-mobile__section { + height: 0%; + overflow-y: hidden; + visibility: hidden; + } +} + +.nav .themes__section li, .nav-mobile__section li { + list-style: none; +} + +@media screen and (min-width: 40em) { + .nav-mobile { + display: none; + } +} + +.nav ul { + display: none; + gap: 1rem; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +@media screen and (min-width: 40em) { + .nav ul { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + } +} + +.nav ul li { + list-style: none; + text-transform: uppercase; + letter-spacing: 0.1rem; +} + +.nav ul li a { + position: relative; + z-index: 1; +} + +.nav ul li a:hover, .nav ul li a:focus-visible { + color: var(--clr-foreground); + z-index: 1; +} + +.nav ul li a:hover::before, .nav ul li a:focus-visible::before { + width: 100%; +} + +.nav ul li a::before { + content: ""; + position: absolute; + width: 0%; + background-color: var(--clr-accent); + height: 110%; + -webkit-transition: all 150ms ease-in; + transition: all 150ms ease-in; + z-index: -1; +} + +.main { + background-color: var(--clr-background-900); + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + gap: 6rem; +} + +.main-container { + max-width: 64rem; + margin: 0 auto; + padding: 3rem 2rem; + width: 100%; +} + +.main .section-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + gap: 2rem; + font-size: 1.2rem; + text-transform: uppercase; + letter-spacing: 0.1rem; +} + +.main .section-header .header-title { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + gap: 0.6rem; +} + +.main .section-header .header-title a { + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; +} + +.main .section-header span { + text-transform: none; + letter-spacing: 0; +} + +@media screen and (max-width: 87.4375em) { + .main .section-header { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + gap: 0; + } + .main .section-header span::before { + display: none; + } +} + +.main .section-header .header-desc { + display: block; + position: relative; + font-size: 0.9rem; + color: var(--clr-foreground-700); +} + +.main .section-header .header-desc::before { + content: ""; + position: absolute; + left: 0; + border: 0.1875rem solid var(--clr-foreground); + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + margin-left: -1rem; + border-radius: 50%; +} + +.card { + background-color: #333333; + background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), to(var(--clr-accent-dark))); + background-image: linear-gradient(transparent, var(--clr-accent-dark)); + background-position: center; + background-size: cover; + background-clip: border-box; + -webkit-box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + border-radius: 0.3rem; + padding: 10rem 0 0; + width: 28ch; + position: relative; + overflow: hidden; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + color: var(--clr-white); +} + +.card:hover { + -webkit-transform: scale(1.1); + transform: scale(1.1); + z-index: 10; +} + +.card-empty { + width: 100%; + padding: 2rem; + -webkit-box-shadow: inset 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.2); + box-shadow: inset 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.2); + background: var(--clr-background-900); + color: var(--clr-foreground-700); +} + +.card-empty:hover, .card-empty:focus-visible { + -webkit-transform: scale(1); + transform: scale(1); +} + +.cards { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + gap: 1rem; + margin-top: 2rem; +} + +.cards.nocentered { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.card-body { + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), color-stop(10%, rgba(0, 0, 0, 0.4)), to(black)); + background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.4) 10%, black); + height: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.card-body header, +.card-body .description-area { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + padding: 0 1.5rem; +} + +.card-body .description-area { + height: 3.2rem; + overflow: hidden; +} + +.card-body h2 { + font-size: 1.2rem; + line-height: 1.2rem; + height: 1.2rem; + overflow: hidden; +} + +.card-body small { + display: block; + color: var(--clr-accent-light); + font-weight: 600; + margin-bottom: 1rem; + margin-top: 0.3rem; +} + +.card-body .more-links { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + width: 100%; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.card-body .more-links span { + display: block; + margin-top: 1rem; + padding: 1rem 1.5rem; + color: var(--clr-disabled-text); + cursor: not-allowed; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.card-body .more-links a { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-top: 1rem; + padding: 1rem 1.5rem; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + position: relative; + z-index: 10; + gap: 0.3rem; +} + +.card-body .more-links a svg { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + height: 1.5rem; +} + +.card-body .more-links a:hover, .card-body .more-links a:focus-visible { + color: var(--clr-white); +} + +.card-body .more-links a:hover::before, .card-body .more-links a:focus-visible::before { + width: 100%; +} + +.card-body .more-links a::before { + content: ""; + position: absolute; + width: 0%; + left: 0; + margin-top: -1rem; + background-color: var(--clr-accent); + height: 100%; + -webkit-transition: all 150ms ease-in; + transition: all 150ms ease-in; + z-index: -1; +} + +.prototype { + margin-bottom: 4rem; + margin-top: 4rem; +} + +.prototypes { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + margin-top: 3rem; + margin-bottom: 8rem; + gap: 7rem; +} + +@media screen and (max-width: 63.9375em) { + .prototypes { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } +} + +.prototype-header { + margin-bottom: 1rem; +} + +.prototype-card { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + border-radius: 0.3rem; + width: 100%; +} + +@media screen and (max-width: 63.9375em) { + .prototype-card { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + } +} + +.prototype-card:nth-of-type(odd) .prototype-header { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; +} + +.prototype-card:nth-of-type(odd) .prototype-header::before { + background-color: var(--clr-accent-dark); + -webkit-transform: rotate(-6deg); + transform: rotate(-6deg); +} + +@media screen and (max-width: 63.9375em) { + .prototype-card:nth-of-type(odd) .prototype-header { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } +} + +.prototype-card:nth-of-type(odd) .prototype-description .text { + padding: 1rem; + padding-right: 2rem; +} + +.prototype-card:nth-of-type(odd) .prototype-description .links { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + padding-left: 1rem; +} + +.prototype-description { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + z-index: 5; +} + +.prototype-description ul li { + margin-top: 0.3rem; +} + +.prototype-description h3 { + margin-bottom: 1rem; +} + +.prototype-description .text { + padding: 1rem; + padding-left: 2rem; +} + +.prototype-description .text .language { + display: inline-block; + padding: 0 0.1rem; + background-color: var(--clr-accent-dark); + color: var(--clr-white); + border-radius: 0.3rem; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + font-size: 0.8rem; +} + +@media screen and (max-width: 63.9375em) { + .prototype-description .text { + padding-left: 0; + } +} + +.prototype-description .text ul { + margin-top: 0.8rem; + border-radius: 0.3rem; + background-color: #1a1a1a; + padding: 1rem; +} + +.prototype-description .links { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + padding-right: 1rem; +} + +.prototype-description .links a { + background-color: var(--clr-accent); + color: var(--clr-white); + padding: 0.5rem 1rem; + border-radius: 0.3rem; + -webkit-transition: all 300ms ease-out; + transition: all 300ms ease-out; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.prototype-description .links a svg { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + height: 1.5rem; +} + +.prototype-description .links a:hover { + -webkit-filter: brightness(120%); + filter: brightness(120%); +} + +.prototype-more { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + gap: 0.4rem; +} + +.prototype-more i { + display: inline-block; + font-style: normal; + padding: 0.2rem 0.7rem; + background-color: var(--clr-background-900); + border-radius: 0.3rem; +} + +.prototype-more i.error { + background-color: #db0000; + color: var(--clr-white); +} + +.prototype-more i.active { + background-color: #067e06; + color: var(--clr-white); +} + +.prototype-more .status { + background-image: -webkit-gradient(linear, right top, left top, from(var(--clr-accent)), to(var(--clr-accent-dark))); + background-image: linear-gradient(-90deg, var(--clr-accent), var(--clr-accent-dark)); + padding: 0 0.7rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-radius: 0.3rem; + color: white; + margin-right: 0.3rem; +} + +.prototype-header { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + position: relative; + width: 25rem; + height: 20rem; + color: var(--clr-white); +} + +@media screen and (max-width: 63.9375em) { + .prototype-header { + width: 100%; + max-width: 25rem; + } +} + +.prototype-header:hover .note { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} + +.prototype-header::before { + content: ""; + position: absolute; + width: 100%; + height: 100%; + -webkit-transform: rotate(6deg); + transform: rotate(6deg); + background: var(--clr-accent); + left: -0.7rem; + border-radius: 40% 20% / 10%; +} + +.prototype .note { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: relative; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + background-color: #212121; + border-radius: 0.6rem; + -webkit-box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + height: 100%; + -webkit-transition: all 300ms ease-in-out; + transition: all 300ms ease-in-out; + z-index: 0; +} + +.prototype .note > svg { + position: absolute; + right: 0.1rem; + bottom: 0.1rem; + color: #1c1c1c; + z-index: -1; +} + +.prototype .note article { + padding: 1rem; + height: 100%; + overflow-y: auto; + scrollbar-width: none; + position: relative; +} + +.prototype .note article::-webkit-scrollbar { + width: 0; +} + +.prototype .note-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 2.5rem; + padding: 0 1rem; + width: 100%; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} + +.prototype .note-header div { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + font-weight: 600; + gap: 0.2rem; +} + +.prototype .note-header div .dot { + height: 0.9375rem; + width: 0.9375rem; + background-color: #db0000; + border-radius: 50%; +} + +.prototype .note-header div .dot:first-of-type { + background-color: green; +} + +.prototype .note-header div .dot:nth-of-type(2) { + background-color: yellow; +} + +.work, +.articles { + padding-top: 4rem; +} + +.contact .form-input { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.contact .form-input__captcha { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.contact .form-input label { + margin: 2em 0 .5em 0; +} + +.contact .form-input input, .contact .form-input textarea { + width: 100%; + padding: 1rem; + border: none; + background-color: var(--clr-background); + color: var(--clr-foreground-900); + resize: none; +} + +.contact .form-input input[type=submit] { + border: none; + color: var(--clr-white); + background-color: var(--clr-accent); +} + +.aboutme { + background-color: var(--clr-accent); + color: var(--clr-white); +} + +.aboutme .adds { + font-size: 0.9rem; + padding: 1rem; +} + +.aboutme a { + text-decoration: underline; + text-underline-offset: 0.4rem; +} + +.aboutme a:hover, +.aboutme a:focus-visible { + color: #d0d0d0; +} + +.aboutme ::-moz-selection { + background-color: #333333; +} + +.aboutme ::selection { + background-color: #333333; +} + +.aboutme h4 { + text-transform: uppercase; + letter-spacing: 0.1rem; +} + +.aboutme .main-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.aboutme .flex { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + border-radius: 0.3rem; + margin-top: 1rem; +} + +.aboutme .flex-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding: 0 1rem; + width: 100%; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} + +.aboutme .flex-header div { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + font-weight: 600; + gap: 0.2rem; +} + +.aboutme .flex-header div .dot { + height: 0.9375rem; + width: 0.9375rem; + background-color: #db0000; + border-radius: 50%; +} + +.aboutme .flex-header div .dot:first-of-type { + background-color: green; +} + +.aboutme .flex-header div .dot:nth-of-type(2) { + background-color: yellow; +} + +.aboutme .flex .lists { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: distribute; + justify-content: space-around; + width: 100%; +} + +.aboutme .flex.tools { + background-color: #212121; + -webkit-box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + margin-bottom: -9rem; +} + +.aboutme .flex.tools h2 { + padding: 1rem; +} + +.aboutme .flex.tools .lists { + background-color: #1c1c1c; + border-radius: 0.3rem; + padding: 2rem; +} + +.aboutme .flex.languages { + -webkit-filter: brightness(110%); + filter: brightness(110%); + -webkit-box-shadow: inset 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + box-shadow: inset 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + background-color: var(--clr-accent-dark); + padding: 2rem; +} + +.aboutme .flex.languages h2 { + padding: 1rem 0; +} + +.aboutme .flex.languages ul { + margin-top: 0.2rem; +} + +.aboutme .flex:not(:first-of-type) { + margin-top: 5rem; + -ms-flex-pack: distribute; + justify-content: space-around; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.aboutme .flex:not(:first-of-type) ul { + font-size: 1.1rem; + font-weight: 600; +} + +.aboutme .flex:not(:first-of-type) ul li { + font-weight: 500; + font-size: 1rem; + margin-top: 0.5rem; +} + +.aboutme .flex:not(:first-of-type) ul li:first-of-type { + margin-top: 0.8rem; +} + +@media screen and (max-width: 63.9375em) { + .aboutme .flex:not(:first-of-type) { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + } + .aboutme .flex:not(:first-of-type) .lists { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + } + .aboutme .flex:not(:first-of-type) ul > li { + display: inline-block; + margin-top: 0; + } +} + +@media screen and (max-width: 63.9375em) { + .aboutme .flex { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + } +} + +.aboutme .data { + position: relative; + min-width: 25rem; + height: 20rem; +} + +@media screen and (max-width: 63.9375em) { + .aboutme .data { + width: 100%; + max-width: 25rem; + min-width: unset; + } +} + +.aboutme .data:hover .note { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} + +.aboutme .data::before { + content: ""; + position: absolute; + width: 100%; + height: 100%; + background-color: #db0000; + left: -0.7rem; + border-radius: 40% 20% / 10%; +} + +.aboutme article { + padding: 1rem; + height: 100%; + overflow-y: auto; + scrollbar-width: none; +} + +.aboutme article::-webkit-scrollbar { + width: 0; +} + +.aboutme article li { + padding-left: 0.6rem; +} + +.aboutme .explain { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-top: 1rem; + padding: 1rem; + font-size: 1.2rem; +} + +@media screen and (min-width: 64em) { + .aboutme .explain { + padding-left: 3rem; + } +} + +.aboutme .note { + -webkit-transform: rotate(-3deg); + transform: rotate(-3deg); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + position: relative; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + background-color: #212121; + border-radius: 0.6rem; + -webkit-box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + height: 100%; + -webkit-transition: all 300ms ease-in-out; + transition: all 300ms ease-in-out; +} + +.aboutme .note > svg { + position: absolute; + right: 0.1rem; + bottom: 0.1rem; + color: #1c1c1c; + z-index: -1; +} + +.aboutme .note-heading { + font-weight: 600; + display: block; + text-transform: uppercase; + letter-spacing: .1em; +} + +.aboutme .note-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 2.5rem; + padding: 0 1rem; + width: 100%; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.4); + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} + +.aboutme .note-header div { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + font-weight: 600; + gap: 0.2rem; +} + +.aboutme .note-header div .dot { + height: 0.9375rem; + width: 0.9375rem; + background-color: #db0000; + border-radius: 50%; +} + +.aboutme .note-header div .dot:first-of-type { + background-color: green; +} + +.aboutme .note-header div .dot:nth-of-type(2) { + background-color: yellow; +} + +.post { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + color: var(--clr-foreground); + background-color: var(--clr-background-900); + line-height: 1.6; + margin: auto; +} + +.post a { + font-weight: 600; + text-decoration: none; + color: var(--clr-href); +} + +.post a:visited { + color: var(--clr-href-visited); +} + +.post a:hover { + color: var(--clr-href-visited); +} + +.post a:focus-visible { + outline: thin dotted; +} + +.post a:hover, .post a:active { + outline: 0; +} + +.post span a:hover, .post span a:visited, .post span a:active, .post span a:focus-visible { + color: var(--clr-href); +} + +.post ::-moz-selection { + background: var(--clr-accent-dark); + color: var(--clr-white); +} + +.post ::selection { + background: var(--clr-accent-dark); + color: var(--clr-white); +} + +.post a::-moz-selection { + background: var(--clr-accent-dark); + color: var(--clr-white); +} + +.post a::selection { + background: var(--clr-accent-dark); + color: var(--clr-white); +} + +.post p { + margin: 1rem 0; +} + +.post img { + max-width: 100%; +} + +.post h1, +.post h2, +.post h3, +.post h4, +.post h5, +.post h6 { + font-weight: 600; + color: var(--clr-foreground); + line-height: 1em; + padding: 1rem 0; +} + +.post h4, +.post h5, +.post h6 { + font-weight: bold; +} + +.post h1 { + font-size: 2.5rem; +} + +.post h2 { + font-size: 2rem; +} + +.post h3 { + font-size: 1.5rem; +} + +.post h4 { + font-size: 1.2rem; +} + +.post h5 { + font-size: 1rem; +} + +.post h6 { + font-size: 0.9rem; +} + +.post blockquote { + color: var(--clr-foreground-900); + margin: 0; + padding-left: 2em; + border-left: 0.5em var(--clr-accent) solid; +} + +.post hr { + display: block; + height: 2px; + border: 0; + border-top: 1px solid var(--clr-accent); + border-bottom: 1px solid var(--clr-accent-light); + margin: 1em 0; + padding: 0; +} + +.post pre, +.post code, +.post kbd, +.post samp { + background-color: var(--clr-background); + color: var(--clr-foreground-700); + font-family: monospace, monospace; + border-radius: 0.3rem; + padding: 0.1rem; + font-size: 0.98rem; + -webkit-box-shadow: inset 0 0.0625rem 0.625rem rgba(0, 0, 0, 0.2); + box-shadow: inset 0 0.0625rem 0.625rem rgba(0, 0, 0, 0.2); +} + +.post pre { + background-color: var(--clr-background); + padding: 1rem; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +.post pre code { + -webkit-box-shadow: none; + box-shadow: none; + background-color: transparent; +} + +.post b, +.post strong { + font-weight: bold; +} + +.post dfn { + font-style: italic; +} + +.post ins { + background: #ff9; + color: #000; + text-decoration: none; +} + +.post mark { + background: #ff0; + color: #000; + font-style: italic; + font-weight: bold; +} + +.post sub, +.post sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +.post sup { + top: -0.5rem; +} + +.post sub { + bottom: -0.25rem; +} + +.post ul, +.post ol { + margin: 1em 0; + padding: 0 0 0 2rem; +} + +.post ul li { + list-style-type: disc; +} + +.post ol li { + list-style-type: decimal; +} + +.post li p:last-child { + margin: 0; +} + +.post dd { + margin: 0 0 0 2rem; +} + +.post img { + border: 0; + vertical-align: middle; +} + +.post table { + border-collapse: collapse; + overflow-x: scroll; + border-spacing: 0; + width: 100%; + background-color: var(--clr-background); + border: 0.0625rem solid var(--clr-accent-dark); + -webkit-box-shadow: inset 0 0.0625rem 0.625rem rgba(0, 0, 0, 0.2); + box-shadow: inset 0 0.0625rem 0.625rem rgba(0, 0, 0, 0.2); +} + +.post table td, .post table th { + padding: 1rem; +} + +.post table tr { + border: 0.0625rem solid var(--clr-background-800); +} + +.post table th { + border-bottom: 0.25rem solid var(--clr-accent); +} + +.post table td { + vertical-align: top; +} + +.post table.properties th { + border-bottom: 0.0625rem solid var(--clr-background-800); + border-left: 0.25rem solid var(--clr-accent); +} + +.post .table-of-contents .toc-container-header { + font-weight: 700; +} + +.post .table-of-contents ul { + margin: 0; +} + +.post .table-of-contents ul ul li { + list-style: circle; +} + +@media print { + .post * { + background: transparent !important; + color: var(--clr-accent-dark) !important; + -webkit-filter: none !important; + filter: none !important; + -ms-filter: none !important; + } + .post body { + font-size: 12pt; + max-width: 100%; + } + .post a, + .post a:visited { + text-decoration: underline; + } + .post hr { + height: 1px; + border: 0; + border-bottom: 1px solid var(--clr-accent-dark); + } + .post a[href]:after { + content: " (" attr(href) ")"; + } + .post abbr[title]:after { + content: " (" attr(title) ")"; + } + .post .ir a:after, + .post a[href^="javascript:"]:after, + .post a[href^="#"]:after { + content: ""; + } + .post pre, + .post blockquote { + border: 1px solid #999; + padding-right: 1em; + page-break-inside: avoid; + } + .post tr, + .post img { + page-break-inside: avoid; + } + .post img { + max-width: 100% !important; + } + @page :left { + .post { + margin: 15mm 20mm 15mm 10mm; + } + } + @page :right { + .post { + margin: 15mm 10mm 15mm 20mm; + } + } + .post p, + .post h2, + .post h3 { + orphans: 3; + widows: 3; + } + .post h2, + .post h3 { + page-break-after: avoid; + } +} + +.footer { + background-color: var(--clr-background); + color: var(--clr-foreground); + padding: 0.8rem; +} + +.footer-container { + max-width: 64rem; + margin: 0 auto; + text-align: center; +} + +.footer .copyright { + font-size: 0.9rem; + margin: 1rem auto; + text-align: center; + border: 0.0625rem solid var(--clr-foreground); + width: 100%; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; + padding: 0.2rem 2rem; +} + +@media screen and (min-width: 40em) { + .footer .copyright { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } +} +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/src/css/style.css.map b/src/css/style.css.map new file mode 100644 index 0000000..8896add --- /dev/null +++ b/src/css/style.css.map @@ -0,0 +1,15 @@ +{ + "version": 3, + "mappings": "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", + "sources": [ + "style.scss", + "scss/_vars.scss", + "scss/_mixin.scss", + "scss/_global.scss", + "scss/_header.scss", + "scss/_main.scss", + "scss/_footer.scss" + ], + "names": [], + "file": "style.css" +} \ No newline at end of file diff --git a/src/css/style.scss b/src/css/style.scss new file mode 100644 index 0000000..4838b3a --- /dev/null +++ b/src/css/style.scss @@ -0,0 +1,7 @@ +@import "./scss/vars"; +@import "./scss/mixin"; +@import "./scss/global"; + +@import "./scss/header"; +@import "./scss/main"; +@import "./scss/footer"; diff --git a/src/images/emptywork.github.io-header.jpg b/src/images/emptywork.github.io-header.jpg new file mode 100644 index 0000000..df404cf Binary files /dev/null and b/src/images/emptywork.github.io-header.jpg differ diff --git a/src/images/emptywork.png b/src/images/emptywork.png new file mode 100644 index 0000000..f0f9fe3 Binary files /dev/null and b/src/images/emptywork.png differ diff --git a/src/images/expo.jpg b/src/images/expo.jpg new file mode 100644 index 0000000..f447569 Binary files /dev/null and b/src/images/expo.jpg differ diff --git a/src/images/jobfair.jpg b/src/images/jobfair.jpg new file mode 100644 index 0000000..1826d71 Binary files /dev/null and b/src/images/jobfair.jpg differ diff --git a/src/images/smu.jpg b/src/images/smu.jpg new file mode 100644 index 0000000..d0f0963 Binary files /dev/null and b/src/images/smu.jpg differ diff --git a/src/index.njk b/src/index.njk new file mode 100644 index 0000000..dbc2d2a --- /dev/null +++ b/src/index.njk @@ -0,0 +1,299 @@ +--- +title: EmptyWork +layout: 'base.njk' +--- + + +
    + {% include 'work.njk' %} + +
    +
    +
    +

    + + + Link to heading "about" + + About me. +

    +
    +
    +
    +
    +
    +
    + + + + + +

    ew.dev

    +
    +
    + + + +
    +
    +
    + Todo list: + Learn how to: +
      +
    • code — like the real code
    • +
    • + fishing + / it's so boring +
    • +
    • write
    • +
    • cook?
    • +
    +
    + + + + + +
    +
    +
    +
    +
    +

    + I am + + based in + + Indonesia + Open a new tab . + + +

    +
    + I am currently Majoring in Informatics Engineering on + + Christian University of Indonesia, Moluccas. + Open a new tab
    + I am also a Certified Fiber Optic Technician since 2017 + by + + APJTEL. + Open a new tab + +
    +
    +
    +
    +
    +

    + + + Link to heading "languages" + + Languages +

    +
    + +
    + +
    +
    +

    + + + Link to heading "tools" + + Tools +

    +
    + + + +
    +
    +
    +
      + Advanced +
    • Adobe Photoshop
    • +
    • Visual Studio Code
    • +
    +
      + Working Knowledge +
    • Adobe After Effect
    • +
    • Resolve Davinci
    • +
    • Gimp
    • +
    • Figma
    • +
    • Atom
    • +
    • Github
    • +
    +
      + Previous Experience +
    • Blockbench
    • +
    • Adobe Premiere
    • +
    • Adobe Illustrator
    • +
    • GitLab
    • +
    +
      + Misc +
    • Hyper
    • +
    +
    +
    +
    +
    + +
    +
    +
    +

    + + + Link to heading "prototypes" + + Prototype +

    + all prototype I do while learning new thing. +
    +
      + {%- for post in collections.prototype | reverse -%} + {% include 'prototype-snippet.njk' %} + {%- endfor -%} +
    +
    +
    +
    diff --git a/src/js/loadTheme.js b/src/js/loadTheme.js new file mode 100644 index 0000000..0fa791b --- /dev/null +++ b/src/js/loadTheme.js @@ -0,0 +1,8 @@ +if ( + localStorage.theme === "dark" || + (!("theme" in localStorage) && window.matchMedia("(prefers-color-scheme: dark)").matches) +) { + document.documentElement.classList.add("dark") +} else { + document.documentElement.classList.remove("dark") +} diff --git a/src/js/main.js b/src/js/main.js new file mode 100644 index 0000000..8c60717 --- /dev/null +++ b/src/js/main.js @@ -0,0 +1,134 @@ +/** + * Fetching data from the said url + * @param {string} url + */ +const dataLoader = async (url) => { + const response = await fetch(url) + const data = await response.json() + if (response) { + schedulerLoader(data.schedules) + } +} + +dataLoader("/settings.json") + +/** + * Mobile hamburger menu logic + */ +let mobileButtons = document.querySelectorAll("[data-mobile-menu-button]") +let mobileMenuSection = document.querySelector("[data-mobile-menu-section]") +let mobileMenuLinks = document.querySelectorAll("body>ul>li") + +mobileButtons.forEach( button => { + button.addEventListener("click", () => { + if (mobileMenuSection.classList.contains("not-showing")) { + setShowing() + return + } + setHidden() + return + }) +}) + +const setShowing = () => { + mobileButtons[0].setAttribute("aria-label", "Close the mobile menu") + mobileMenuSection.classList.remove("not-showing") + setTimeout(() => document.body.classList.add("no-scroll"), 300) +} + +const setHidden = () => { + mobileButtons[0].setAttribute("aria-label", "Open the mobile menu") + mobileMenuSection.classList.add("not-showing") + document.body.classList.remove("no-scroll") +} + +/** + * Changing the theme based on user toggle + */ +let themesButton = document.querySelector("[data-theme-button]") + +const themeHandler = () => { + if (document.documentElement.classList.contains("dark")) { + setLight() + return + } + setDark() + return +} +themesButton.addEventListener("click", themeHandler) + +const setLight = () => { + document.documentElement.classList.remove("dark") + themesButton.setAttribute("aria-label", "Switch to dark mode") + localStorage.theme = "light" +} + +const setDark = () => { + document.documentElement.classList.add("dark") + themesButton.setAttribute("aria-label", "Switch to light mode") + localStorage.theme = "dark" +} + +/** + * Printing details on console + */ +console.group("Emptywork -- Dev") +console.log( + "%cEmptywork %c console", + "background-color:#cecece; margin:2px; color:transparent; font-size:0.7rem" +) +console.log( + "%cdot one %c com", + "background-color:rebeccapurple; margin:2px; color:transparent; font-size:0.7rem" +) +console.log("%cemptywork dot github dot io", "font-size:0.88rem") +console.log( + "%cEmptywork Console %c testing", + "background-color:#cecece; margin:2px; color:transparent; font-size:0.7rem" +) +console.groupEnd() + +/** + * Global Variables for Date related functions + */ + let days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] + + let months = [ + "January", + "Febuary", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", + ] + + let replaceStatus = document.querySelector("#activity") + let replaceMonth = document.querySelector("#month") + + let currentDate = new Date() + let currentDay = currentDate.getDay() + let currentMonth = currentDate.getMonth() + + if(replaceMonth) replaceMonth.textContent = months[currentMonth] + + /** + * Updating activity status based on array of schedule + * @param {array} schedules + */ + + const schedulerLoader = (schedules = {}) => { + for (let i = 0; i < schedules.length; i++) { + if (!replaceStatus) return + if (days[currentDay] === schedules[i]) { + replaceStatus.textContent = "Kuliah" + break + } + replaceStatus.textContent = "Bebas" + } + } \ No newline at end of file diff --git a/src/project/2021-10-29-jobfair-website.md b/src/project/2021-10-29-jobfair-website.md new file mode 100644 index 0000000..39e96ae --- /dev/null +++ b/src/project/2021-10-29-jobfair-website.md @@ -0,0 +1,11 @@ +--- +title: Jobfair's Website +author: EmptyWork +date: 2021-05-01 +endDate: false +tags: ["project"] +image: /images/jobfair.jpg +description: An website that aim to help Ambonese looking for their new opportunties +linkDemo: https://jobfair-gpmsyaloom.herokuapp.com/ +linkCode: false +--- \ No newline at end of file diff --git a/src/project/2021-10-29-smu-website.md b/src/project/2021-10-29-smu-website.md new file mode 100644 index 0000000..76fdef6 --- /dev/null +++ b/src/project/2021-10-29-smu-website.md @@ -0,0 +1,12 @@ +--- +title: University Student Body's Website +description: A Wireframe for the future of SMU's website +author: EmptyWork +date: 2021-01-26 +endDate: false +tags: + - project +image: /images/smu.jpg +linkDemo: https://emptywork.github.io/senatmahasiswa-design/ +linkCode: https://github.com/EmptyWork/senatmahasiswa-design +--- diff --git a/src/project/2021-10-29-ukimexpo2019-website.md b/src/project/2021-10-29-ukimexpo2019-website.md new file mode 100644 index 0000000..22f3642 --- /dev/null +++ b/src/project/2021-10-29-ukimexpo2019-website.md @@ -0,0 +1,11 @@ +--- +title: UKIMExpo'19 Website +author: EmptyWork +date: 2019-10-11 +endDate: 2019-10-28 +tags: ["project"] +image: /images/expo.jpg +description: A showcase website for promoting Informatics Faculty of Christian University of Indonesia, Moluccas +linkDemo: https://emptywork.github.io/UKIMexpo/ +linkCode: https://github.com/EmptyWork/UKIMexpo +--- \ No newline at end of file diff --git a/src/project/project.json b/src/project/project.json new file mode 100644 index 0000000..b286b72 --- /dev/null +++ b/src/project/project.json @@ -0,0 +1,5 @@ +{ + "tags": "project", + "linkDemo": false, + "linkCode": false +} \ No newline at end of file diff --git a/src/prototype/2021-ci3-implementation.md b/src/prototype/2021-ci3-implementation.md new file mode 100644 index 0000000..88bceed --- /dev/null +++ b/src/prototype/2021-ci3-implementation.md @@ -0,0 +1,17 @@ +--- +title: CI3 - Implementation +status: 1 +description: Contoh implementasi dari CodeIgniter, adapun prototype ini + merupakan latihan yang dilakukan pada saat mengikuti kelas PBP. +date: 2021-12-26T11:30:51.516Z +tags: + - prototype + - php + - codeigniter3 +linkDemo: http://pbp2stevarth.rf.gd/ +code: |- + +--- diff --git a/src/prototype/2021-eazbi-website.md b/src/prototype/2021-eazbi-website.md new file mode 100644 index 0000000..8ee00b4 --- /dev/null +++ b/src/prototype/2021-eazbi-website.md @@ -0,0 +1,19 @@ +--- +title: Eazbi - Website +status: 1 +description: Kumpulan proyek Javascript (native), kode-kode ini akan + dikembangkan lagi untuk di gunakan sebagai front-end development. +date: 2021-01-26 +tags: + - prototype + - html5 + - css3 + - javascript +linkDemo: http://eazbi.rf.gd +code: |- + const creditsIm = () => { + let credit = document.querySelector + ('.ew-credits'); + credit.classList.toggle('show'); + } +--- diff --git a/src/prototype/2021-ew-javascript.md b/src/prototype/2021-ew-javascript.md new file mode 100644 index 0000000..87b68e3 --- /dev/null +++ b/src/prototype/2021-ew-javascript.md @@ -0,0 +1,26 @@ +--- +title: Ew-Javascript +status: 2 +description: Source Code untuk website pribadi. tujuan website ini dibuat adalah + sebagai showcase dan archive dari semua project yang akan dijalani atau + dibuat. +date: 2021-01-26 +tags: + - prototype + - html5 + - css3 + - javascript +linkDemo: https://emptywork.github.io/ew-javascript +code: |- + const preLoad = () => { + let preload = document.querySelector('.preload'); + let content = document.querySelector('.inside'); + setTimeout(() => { + preload.style.marginTop = + 'calc(-100vh + -300px)'; + }, 2000) + setTimeout(() => { + content.style.display = 'grid'; + }, 2100); + } +--- diff --git a/src/prototype/prototype.json b/src/prototype/prototype.json new file mode 100644 index 0000000..82ee12b --- /dev/null +++ b/src/prototype/prototype.json @@ -0,0 +1,4 @@ +{ + "tags": "prototype", + "language": "en" +} \ No newline at end of file