├── .github ├── dependabot.yml └── workflows │ ├── docs-to-gh-pages.yml │ ├── fresh-to-vercel-pr-deployment.yml │ ├── fresh-to-vercel-pr.yml │ ├── fresh-to-vercel.yml │ └── htmltest.yml ├── .gitignore ├── LICENSE ├── README.md ├── assets ├── fresh │ ├── core.scss │ └── partials │ │ ├── _animations.scss │ │ ├── _buttons.scss │ │ ├── _cards.scss │ │ ├── _colors.scss │ │ ├── _dropdowns.scss │ │ ├── _footer.scss │ │ ├── _forms.scss │ │ ├── _hero.scss │ │ ├── _navbar.scss │ │ ├── _responsive.scss │ │ ├── _sections.scss │ │ ├── _sidebar.scss │ │ ├── _testimonials.scss │ │ └── _utils.scss └── style.sass ├── config.yaml ├── docs ├── content │ ├── deepmodifications.md │ ├── getstarted.md │ ├── landingpage.md │ ├── markdown-syntax.md │ ├── misc.md │ ├── module.md │ ├── singlepage.md │ └── troubleshooting.md ├── go.mod ├── go.sum └── hugo.yml ├── exampleSite ├── .gitignore ├── .htmltest.yml ├── content │ ├── agb.md │ └── blog │ │ ├── first.md │ │ └── second.md ├── go.mod ├── go.sum ├── hugo.work └── hugo.yaml ├── go.mod ├── go.sum ├── images ├── screenshot.png └── tn.png ├── layouts ├── _default │ ├── baseof.html │ ├── list.html │ └── single.html ├── index.html ├── partials │ ├── css.html │ ├── footer.html │ ├── hero-body.html │ ├── hero-footer.html │ ├── hero.html │ ├── javascript.html │ ├── meta.html │ ├── navbar-clone.html │ ├── navbar.html │ ├── section1.html │ ├── section2.html │ ├── section3.html │ ├── section4.html │ ├── section5.html │ ├── sidebar.html │ └── single │ │ ├── content.html │ │ ├── sidebar.html │ │ └── single.html └── shortcodes │ ├── subtitle1.html │ ├── subtitle2.html │ ├── subtitle3.html │ ├── subtitle4.html │ ├── subtitle5.html │ ├── subtitle6.html │ ├── title1.html │ ├── title2.html │ ├── title3.html │ ├── title4.html │ ├── title5.html │ └── title6.html ├── resources └── _gen │ └── assets │ └── sass │ ├── style.sass_0cd3d355ec95bf1703b17a06ee0ef826.content │ └── style.sass_0cd3d355ec95bf1703b17a06ee0ef826.json ├── static ├── css │ └── icons.css ├── fonts │ ├── fontawesome-webfont.woff2 │ ├── fontello.woff │ └── simple-line-icons.ttf ├── images │ ├── favicon.png │ ├── illustrations │ │ ├── faces │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ └── 3.png │ │ ├── icons │ │ │ ├── doc-sync.svg │ │ │ ├── laptop-cloud.svg │ │ │ ├── laptop-globe.svg │ │ │ ├── mobile-feed.svg │ │ │ ├── mouse-globe.svg │ │ │ └── plug-cloud.svg │ │ ├── mockups │ │ │ └── app-mockup.png │ │ ├── worker.png │ │ └── worker.svg │ ├── loaders │ │ ├── audio.svg │ │ ├── ball-triangle.svg │ │ ├── bars.svg │ │ ├── circles.svg │ │ ├── grid.svg │ │ ├── hearts.svg │ │ ├── oval.svg │ │ ├── puff.svg │ │ ├── rings.svg │ │ ├── spinning-circles.svg │ │ ├── tail-spin.svg │ │ └── three-dots.svg │ └── logos │ │ ├── bulma.svg │ │ ├── clients │ │ ├── gutwork.svg │ │ ├── infinite.svg │ │ ├── kromo.svg │ │ ├── systek.svg │ │ └── tribe.svg │ │ ├── fresh-alt.svg │ │ ├── fresh-square.svg │ │ ├── fresh-white-alt.svg │ │ ├── fresh-white.svg │ │ ├── fresh.svg │ │ ├── icon-logo.svg │ │ └── made-with-bulma.png └── js │ ├── fresh.js │ └── jquery.panelslider.min.js └── theme.toml /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # Configuration options: 2 | # https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#about-the-dependabotyml-file 3 | 4 | version: 2 5 | 6 | updates: 7 | - package-ecosystem: "github-actions" 8 | directory: "/" 9 | schedule: 10 | interval: "weekly" 11 | -------------------------------------------------------------------------------- /.github/workflows/docs-to-gh-pages.yml: -------------------------------------------------------------------------------- 1 | name: Deploy docs 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | deploy: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v4 13 | 14 | - name: Setup Hugo 15 | uses: peaceiris/actions-hugo@v3 16 | with: 17 | hugo-version: '0.110.0' 18 | extended: true 19 | 20 | - name: Build 21 | working-directory: docs 22 | run: hugo --minify 23 | 24 | - name: Deploy 25 | uses: peaceiris/actions-gh-pages@v4 26 | with: 27 | github_token: ${{ secrets.GITHUB_TOKEN }} 28 | force_orphan: true 29 | commit_message: '[skip ci] Deploy:' 30 | publish_dir: docs/public 31 | -------------------------------------------------------------------------------- /.github/workflows/fresh-to-vercel-pr-deployment.yml: -------------------------------------------------------------------------------- 1 | name: Fresh to vercel PR deployment 2 | 3 | on: 4 | workflow_run: 5 | workflows: [Fresh to vercel PR] 6 | types: 7 | - completed 8 | 9 | jobs: 10 | createExampleAndDeployToArtifacts: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout 14 | uses: actions/checkout@v4 15 | 16 | - name: Download hugo build 17 | uses: actions/github-script@v7.0.1 18 | with: 19 | script: | 20 | var artifacts = await github.rest.actions.listWorkflowRunArtifacts({ 21 | owner: context.repo.owner, 22 | repo: context.repo.repo, 23 | run_id: ${{ github.event.workflow_run.id }}, 24 | }); 25 | var matchArtifact = artifacts.data.artifacts.filter((artifact) => { 26 | return artifact.name == "hugo-output" 27 | })[0]; 28 | var download = await github.rest.actions.downloadArtifact({ 29 | owner: context.repo.owner, 30 | repo: context.repo.repo, 31 | artifact_id: matchArtifact.id, 32 | archive_format: 'zip', 33 | }); 34 | var fs = require('fs'); 35 | fs.writeFileSync('${{github.workspace}}/hugo-output.zip', Buffer.from(download.data)); 36 | - run: unzip hugo-output.zip -d hugo-output 37 | 38 | - name: Download alias-domain 39 | uses: actions/github-script@v7.0.1 40 | with: 41 | script: | 42 | var artifacts = await github.rest.actions.listWorkflowRunArtifacts({ 43 | owner: context.repo.owner, 44 | repo: context.repo.repo, 45 | run_id: ${{ github.event.workflow_run.id }}, 46 | }); 47 | var matchArtifact = artifacts.data.artifacts.filter((artifact) => { 48 | return artifact.name == "alias-domain" 49 | })[0]; 50 | var download = await github.rest.actions.downloadArtifact({ 51 | owner: context.repo.owner, 52 | repo: context.repo.repo, 53 | artifact_id: matchArtifact.id, 54 | archive_format: 'zip', 55 | }); 56 | var fs = require('fs'); 57 | fs.writeFileSync('${{github.workspace}}/alias-domain.zip', Buffer.from(download.data)); 58 | - run: unzip alias-domain.zip 59 | 60 | - name: Extract alias-domain 61 | id: extract-alias-domain 62 | run: | 63 | aliasDomain=`cat alias-domain` 64 | echo "ALIAS_DOMAIN=$aliasDomain" >> $GITHUB_OUTPUT 65 | 66 | - name: Deploy to Vercel on PR 67 | uses: amondnet/vercel-action@v25 68 | with: 69 | vercel-token: ${{ secrets.VERCEL_TOKEN }} 70 | vercel-org-id: ${{ secrets.VERCEL_ORG_ID}} 71 | vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID}} 72 | vercel-project-name: hugo-fresh 73 | alias-domains: ${{ steps.extract-alias-domain.outputs.ALIAS_DOMAIN }} 74 | working-directory: ./hugo-output -------------------------------------------------------------------------------- /.github/workflows/fresh-to-vercel-pr.yml: -------------------------------------------------------------------------------- 1 | name: Fresh to vercel PR 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | testBuild: 8 | runs-on: ubuntu-latest 9 | strategy: 10 | matrix: 11 | # 0.110.0 "minVersion" (that is tested) 12 | # 0.135.0 "justAVersion" 13 | # latest "latest" 14 | hugo: ['0.110.0', '0.135.0', 'latest'] 15 | 16 | steps: 17 | - name: Checkout 18 | uses: actions/checkout@v4 19 | 20 | - name: Setup Hugo 21 | uses: peaceiris/actions-hugo@v3 22 | with: 23 | hugo-version: ${{ matrix.hugo }} 24 | extended: true 25 | 26 | - name: Build with Hugo on PR 27 | working-directory: exampleSite 28 | run: hugo --minify 29 | 30 | createExampleAndDeployToArtifacts: 31 | runs-on: ubuntu-latest 32 | needs: [testBuild] 33 | steps: 34 | - name: Checkout 35 | uses: actions/checkout@v4 36 | 37 | - name: Setup Hugo 38 | uses: peaceiris/actions-hugo@v3 39 | with: 40 | hugo-version: 'latest' 41 | extended: true 42 | 43 | - name: Build with Hugo on PR 44 | working-directory: exampleSite 45 | run: | 46 | hugo \ 47 | --minify \ 48 | --baseURL https://hugo-fresh-${{ github.event.pull_request.head.user.login }}-${{ github.event.pull_request.head.ref }}.vercel.app 49 | 50 | - name: Save hugo as artifact 51 | uses: actions/upload-artifact@v4 52 | with: 53 | name: hugo-output 54 | path: exampleSite/public/ 55 | 56 | - name: Save alias domain 57 | run: | 58 | mkdir -p ./alias-domain 59 | echo hugo-fresh-${{ github.event.pull_request.head.user.login }}-${{ github.event.pull_request.head.ref }}.vercel.app > ./alias-domain/alias-domain 60 | 61 | - name: Save alias domain as artifact 62 | uses: actions/upload-artifact@v4 63 | with: 64 | name: alias-domain 65 | path: alias-domain/ 66 | -------------------------------------------------------------------------------- /.github/workflows/fresh-to-vercel.yml: -------------------------------------------------------------------------------- 1 | name: Fresh to vercel 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | deployMasterToVercel: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Checkout 13 | uses: actions/checkout@v4 14 | 15 | - name: Setup Hugo 16 | uses: peaceiris/actions-hugo@v3 17 | with: 18 | hugo-version: '0.110.0' 19 | extended: true 20 | 21 | - name: Build with Hugo on master 22 | working-directory: exampleSite 23 | run: | 24 | hugo \ 25 | --minify \ 26 | --baseURL https://hugo-fresh.vercel.app/ 27 | 28 | - name: Deploy to Vercel on master 29 | uses: amondnet/vercel-action@v25 30 | with: 31 | vercel-token: ${{ secrets.VERCEL_TOKEN }} 32 | vercel-org-id: ${{ secrets.VERCEL_ORG_ID}} 33 | vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID}} 34 | vercel-project-name: hugo-fresh 35 | vercel-args: '--prod' 36 | working-directory: ./exampleSite/public -------------------------------------------------------------------------------- /.github/workflows/htmltest.yml: -------------------------------------------------------------------------------- 1 | # .github/workflows/htmltest.yml 2 | # Run htmltest link checker on generated HTML output from user guide 3 | 4 | name: Link check with htmltest 5 | 6 | on: 7 | workflow_dispatch: 8 | push: 9 | branches: 10 | - master 11 | pull_request: 12 | 13 | jobs: 14 | htmltest: 15 | runs-on: ubuntu-latest 16 | concurrency: 17 | group: ${{ github.workflow }}-${{ github.ref }} 18 | steps: 19 | - name: Check out repository 20 | uses: actions/checkout@v4 21 | with: 22 | fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod 23 | 24 | - name: Set up Hugo 25 | uses: peaceiris/actions-hugo@v3 26 | with: 27 | hugo-version: "latest" 28 | extended: true 29 | 30 | - run: hugo --destination $GITHUB_WORKSPACE/exampleSite/public --themesDir ../../ --theme hugo-fresh 31 | working-directory: exampleSite 32 | 33 | - name: Test HTML 34 | # https://github.com/wjdp/htmltest-action/ 35 | continue-on-error: true # <- Set to true if run shouldn't fail with broken links 36 | uses: wjdp/htmltest-action@master 37 | with: 38 | # For consistency, use the same config file as for local builds 39 | config: exampleSite/.htmltest.yml 40 | path: exampleSite/public 41 | 42 | - name: Archive htmltest results 43 | uses: actions/upload-artifact@v4 44 | with: 45 | name: htmltest-report 46 | path: tmp/.htmltest/htmltest.log 47 | retention-days: 7 # default is 90 days -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | public 2 | .hugo_build.lock -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Stefan M. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

✨ hugo-fresh | Demo | Documentation

2 |

The Fresh theme for Hugo

3 | 4 | 5 | **Fresh** is a theme for the [Hugo](https://gohugo.io) static site generator adapted from the gorgeous, [Bulma](https://bulma.io)-based theme of the same name from [CSS Ninja](https://cssninja.io/product/fresh). You can find a live demo of the original theme [here](https://fresh.cssninja.io/) and a live demo of the Hugo theme [here](https://hugo-fresh.vercel.app). 6 | 7 | ![Fresh theme logo](images/screenshot.png) 8 | -------------------------------------------------------------------------------- /assets/fresh/core.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Main SCSS file / Fresh 3 | ========================================================================== */ 4 | 5 | //Imports 6 | @import 'partials/colors'; 7 | @import 'partials/navbar'; 8 | @import 'partials/dropdowns'; 9 | @import 'partials/sections'; 10 | @import 'partials/hero'; 11 | @import 'partials/footer'; 12 | @import 'partials/buttons'; 13 | @import 'partials/cards'; 14 | @import 'partials/forms'; 15 | @import 'partials/animations'; 16 | @import 'partials/sidebar'; 17 | @import 'partials/testimonials'; 18 | @import 'partials/responsive'; 19 | @import 'partials/utils'; 20 | 21 | -------------------------------------------------------------------------------- /assets/fresh/partials/_animations.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | General Keyframes animations 3 | ========================================================================== */ 4 | 5 | .animated { 6 | animation-duration: 0.5s; 7 | animation-fill-mode: both; 8 | -webkit-animation-duration: 0.5s; 9 | -webkit-animation-fill-mode: both; 10 | } 11 | 12 | //Delays 13 | .delay-1 { 14 | animation-delay: .25s; 15 | } 16 | .delay-2 { 17 | animation-delay: .5s; 18 | } 19 | .delay-3 { 20 | animation-delay: .75s; 21 | } 22 | .delay-4 { 23 | animation-delay: 1s; 24 | } 25 | 26 | // FADE IN LEFT 27 | @keyframes fadeInLeft { 28 | from { 29 | -webkit-transform: translate3d(20px, 0, 0); 30 | transform: translate3d(20px, 0, 0); 31 | opacity: 0; 32 | } 33 | to { 34 | -webkit-transform: translate3d(0, 0, 0); 35 | transform: translate3d(0, 0, 0); 36 | opacity: 1; 37 | } 38 | } 39 | @-webkit-keyframes fadeInLeft { 40 | from { 41 | -webkit-transform: translate3d(20px, 0, 0); 42 | transform: translate3d(20px, 0, 0); 43 | opacity: 0; 44 | } 45 | to { 46 | -webkit-transform: translate3d(0, 0, 0); 47 | transform: translate3d(0, 0, 0); 48 | opacity: 1; 49 | } 50 | } 51 | 52 | .preFadeInLeft { 53 | opacity: 0; 54 | } 55 | 56 | .fadeInLeft { 57 | opacity: 0; 58 | animation-name: fadeInLeft; 59 | -webkit-animation-name: fadeInLeft; 60 | } 61 | 62 | // FADE IN UP 63 | @keyframes fadeInUp { 64 | from { 65 | -webkit-transform: translate3d(0, 20px, 0); 66 | transform: translate3d(0, 20px, 0); 67 | } 68 | to { 69 | -webkit-transform: translate3d(0, 0, 0); 70 | transform: translate3d(0, 0, 0); 71 | opacity: 1; 72 | } 73 | } 74 | @-webkit-keyframes fadeInUp { 75 | from { 76 | -webkit-transform: translate3d(0, 20px, 0); 77 | transform: translate3d(0, 20px, 0); 78 | } 79 | to { 80 | -webkit-transform: translate3d(0, 0, 0); 81 | transform: translate3d(0, 0, 0); 82 | opacity: 1; 83 | } 84 | } 85 | .preFadeInUp { 86 | opacity: 0; 87 | } 88 | .fadeInUp { 89 | opacity: 0; 90 | animation-name: fadeInUp; 91 | -webkit-animation-name: fadeInUp; 92 | } 93 | 94 | //Gelatine 95 | .gelatine { 96 | animation: gelatine 0.6s; 97 | animation-duration: 0.6s; 98 | -webkit-animation-duration: 0.5s; 99 | animation-fill-mode: both; 100 | -webkit-animation-fill-mode: both; 101 | } 102 | 103 | @keyframes gelatine { 104 | from, to { transform: scale(1, 1); } 105 | 25% { transform: scale(0.9, 1.1); } 106 | 50% { transform: scale(1.1, 0.9); } 107 | 75% { transform: scale(0.95, 1.05); } 108 | } -------------------------------------------------------------------------------- /assets/fresh/partials/_buttons.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Classes to change the feel of bulma buttons 3 | ========================================================================== */ 4 | 5 | // CTA buttons 6 | 7 | .button { 8 | cursor: pointer; 9 | transition: all 0.5s; 10 | &.cta { 11 | font-family: 'Open Sans', sans-serif; 12 | font-size: 1rem; 13 | font-weight: 600; 14 | padding: 26px 40px 26px 40px; 15 | } 16 | &.is-clear { 17 | line-height: 0 !important; 18 | } 19 | &.rounded { 20 | border-radius: 500px; 21 | } 22 | &.raised:hover { 23 | box-shadow: 0 14px 26px -12px rgba(0, 0, 0, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2) !important; 24 | opacity: 0.8; 25 | } 26 | &.btn-outlined { 27 | background: transparent; 28 | } 29 | &.signup-button { 30 | font-size: .9rem; 31 | font-weight: 600; 32 | font-family: 'Open Sans', sans-serif; 33 | padding: 24px 26px; 34 | width: 130px; 35 | } 36 | } 37 | 38 | .button { 39 | &.primary-btn { 40 | outline: none; 41 | border-color: $primary; 42 | background-color: $primary; 43 | color: $white; 44 | transition: all 0.5s; 45 | &:hover { 46 | color: $white; 47 | } 48 | &.raised:hover { 49 | box-shadow: 0 14px 26px -12px rgba(79, 193, 234, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(79, 193, 234, 0.2) !important; 50 | opacity: 0.8; 51 | } 52 | &.btn-outlined { 53 | border-color: $primary; 54 | color: $primary; 55 | background-color: transparent; 56 | &:hover { 57 | color: $white; 58 | background-color: $primary; 59 | } 60 | } 61 | } 62 | &.secondary-btn { 63 | outline: none; 64 | border-color: $secondary; 65 | background-color: $secondary; 66 | color: $white; 67 | transition: all 0.5s; 68 | &:hover { 69 | color: $white; 70 | } 71 | &.raised:hover { 72 | box-shadow: 0 14px 26px -12px rgba(243, 146, 0, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(243, 146, 0, 0.2) !important; 73 | opacity: 0.8; 74 | } 75 | &.btn-outlined { 76 | border-color: $secondary; 77 | color: $secondary; 78 | background-color: transparent; 79 | &:hover { 80 | color: $white; 81 | background-color: $secondary; 82 | } 83 | } 84 | } 85 | &.button.accent-btn { 86 | outline: none; 87 | border-color: $accent; 88 | background-color: $accent; 89 | color: $white; 90 | transition: all 0.5s; 91 | &:hover { 92 | color: $white; 93 | } 94 | &.raised:hover { 95 | box-shadow: 0 14px 26px -12px rgba(104, 187, 136, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(104, 187, 136, 0.2) !important; 96 | opacity: 0.8; 97 | } 98 | &.btn-outlined { 99 | border-color: $accent; 100 | color: $accent; 101 | background-color: transparent; 102 | &:hover { 103 | color: $white; 104 | background-color: $accent; 105 | } 106 | } 107 | } 108 | } 109 | 110 | -------------------------------------------------------------------------------- /assets/fresh/partials/_cards.scss: -------------------------------------------------------------------------------- 1 | /*! _cards.scss v1.0.0 | Commercial License | built on top of bulma.io/Bulmax */ 2 | 3 | /* ========================================================================== 4 | Cards and Card content styles 5 | ========================================================================== */ 6 | 7 | // Feature Card 8 | .feature-card { 9 | width: 300px; 10 | height: 320px; 11 | background-color: #fff; 12 | border-radius: 3px; 13 | margin: 0 auto; 14 | .card-title h4 { 15 | font-family: 'Open Sans', sans-serif; 16 | padding-top: 25px; 17 | font-size: 1.2rem; 18 | font-weight: 600; 19 | color: $blue-grey; 20 | } 21 | .card-icon img { 22 | height: 120px; 23 | margin-top: 20px; 24 | } 25 | .card-text { 26 | padding: 0 40px; 27 | p { 28 | color: $muted-grey; 29 | } 30 | } 31 | .card-action { 32 | margin-top: 10px; 33 | } 34 | &.is-bordered { 35 | border: 1px solid $fade-grey; 36 | } 37 | } 38 | 39 | // Flex Card 40 | .flex-card { 41 | position: relative; 42 | background-color: #fff; 43 | border: 0; 44 | border-radius: 0.1875rem; 45 | display: inline-block; 46 | position: relative; 47 | overflow: hidden; 48 | width: 100%; 49 | margin-bottom: 20px; 50 | &.raised { 51 | box-shadow: 0px 5px 25px 0px rgba(0, 0, 0, 0.2); 52 | } 53 | .tabs { 54 | padding: 15px 0.7rem; 55 | } 56 | .navtab-content { 57 | min-height: 190px; 58 | p { 59 | padding: 0 0.8rem 20px; 60 | } 61 | } 62 | .navigation-tabs { 63 | &.outlined-pills .tabs.tabs-header { 64 | &.primary { 65 | background-color: $primary; 66 | } 67 | &.secondary { 68 | background-color: $secondary; 69 | } 70 | &.accent { 71 | background-color: $accent; 72 | } 73 | ul li a { 74 | color: $grey-white; 75 | } 76 | ul li.is-active a { 77 | color: $white; 78 | border: 1px solid $white; 79 | border-bottom-color: $white !important; 80 | } 81 | } 82 | } 83 | 84 | } -------------------------------------------------------------------------------- /assets/fresh/partials/_colors.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Color variables 3 | ========================================================================== */ 4 | 5 | $white: #fff; 6 | $smoke-white: #fcfcfc; 7 | $grey-white: #f2f2f2; 8 | 9 | $primary: #4FC1EA; 10 | $secondary: #F39200; 11 | $accent: #00efb7; 12 | 13 | $fade-grey: #ededed; 14 | $light-grey: #EFF4F7; 15 | $title-grey: #A9ABAC; 16 | $blue-grey: #444F60; 17 | $muted-grey: #999; 18 | $light-blue-grey: #98a9c3; 19 | $medium-grey: #66676b; 20 | $basaltic-grey: #878787; 21 | $purple: #7F00FF; 22 | $mint: #11FFBD; 23 | $bloody: #FC354C; 24 | $pinky: #ff00cc; 25 | $frost: #004e92; 26 | $placeholder: #cecece; 27 | $dark-grey: #344258; 28 | $border-grey: #ccc; 29 | $muted-grey: #999; 30 | $section-grey: #fbfbfb; -------------------------------------------------------------------------------- /assets/fresh/partials/_dropdowns.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Dropdown styles 3 | ========================================================================== */ 4 | 5 | // Hover Dropdowns 6 | div.nav-item.is-drop a { 7 | padding-right: 7px; 8 | } 9 | 10 | div.nav-item.is-drop:hover .dropContain .dropOut { 11 | opacity: 1; 12 | } 13 | 14 | div.nav-item.is-drop:hover, div.nav-item.is-drop:hover a, { 15 | border-bottom: 1px solid transparent !important; 16 | color: $secondary; 17 | } 18 | 19 | div.nav-item.is-drop:hover .dropContain { 20 | top: 65px; 21 | animation: fadeInUp 0.27s ease-out; 22 | } 23 | 24 | span.drop-caret { 25 | position: relative; 26 | top: 5px; 27 | } 28 | 29 | div.nav-item.is-drop { 30 | position: relative; 31 | .dropContain { 32 | width: 220px; 33 | position: absolute; 34 | z-index: 3; 35 | left: 50%; 36 | margin-left: -110px; /* half of width */ 37 | top: -400px; 38 | .dropOut { 39 | width: 220px; 40 | background: $white; 41 | float: left; 42 | position: relative; 43 | margin-top: 15px; 44 | opacity: 0; 45 | -webkit-border-radius: 4px; 46 | -moz-border-radius: 4px; 47 | border-radius: 4px; 48 | -webkit-box-shadow: 0 1px 6px rgba(0,0,0,.15); 49 | -moz-box-shadow: 0 1px 6px rgba(0,0,0,.15); 50 | box-shadow: 0 1px 6px rgba(0,0,0,.15); 51 | -webkit-transition: all .5s ease-out; 52 | -moz-transition: all .5s ease-out; 53 | -ms-transition: all .5s ease-out; 54 | -o-transition: all .5s ease-out; 55 | transition: all .5s ease-out; 56 | } 57 | .dropOut .triangle { 58 | width: 0; 59 | height: 0; 60 | position: absolute; 61 | border-left: 8px solid transparent; 62 | border-right: 8px solid transparent; 63 | border-bottom: 8px solid $white; 64 | top: -8px; 65 | left: 50%; 66 | margin-left: -8px; 67 | } 68 | .dropOut ul li { 69 | text-align: left; 70 | float: left; 71 | width: 200px; 72 | padding: 12px 0 10px 15px; 73 | margin: 0px 10px; 74 | color: #777; 75 | -webkit-border-radius: 4px; 76 | -moz-border-radius: 4px; 77 | border-radius: 4px; 78 | -webkit-transition: background .1s ease-out; 79 | -moz-transition: background .1s ease-out; 80 | -ms-transition: background .1s ease-out; 81 | -o-transition: background .1s ease-out; 82 | transition: background .1s ease-out; 83 | &:hover { 84 | background: $light-grey; 85 | cursor: pointer; 86 | } 87 | } 88 | .dropOut ul { 89 | float: left; 90 | padding: 10px 0; 91 | } 92 | } 93 | } -------------------------------------------------------------------------------- /assets/fresh/partials/_footer.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Fresh Footer 3 | ========================================================================== */ 4 | 5 | footer.footer-dark { 6 | background: $blue-grey; 7 | color: $white; 8 | .columns { 9 | margin-top: 35px; 10 | } 11 | .footer-logo { 12 | img { 13 | height: 40px; 14 | } 15 | } 16 | .footer-column { 17 | .footer-header h3 { 18 | font-weight:500; 19 | font-size: 1.2rem; 20 | text-transform: uppercase; 21 | letter-spacing: 1px; 22 | margin-bottom: 20px; 23 | } 24 | ul.link-list { 25 | line-height: 40px; 26 | font-size: 1.1rem; 27 | a { 28 | color: $light-blue-grey; 29 | font-weight: 400; 30 | transition: all 0.5s; 31 | } 32 | :hover { 33 | color: $smoke-white; 34 | } 35 | } 36 | .level-item .icon { 37 | color: $secondary; 38 | transition: all 0.5s; 39 | :hover { 40 | color: $smoke-white; 41 | } 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /assets/fresh/partials/_forms.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Inputs styles 3 | ========================================================================== */ 4 | 5 | input.input { 6 | color: $basaltic-grey; 7 | box-shadow: none !important; 8 | transition: all 0.8s; 9 | padding-bottom: 3px; 10 | &.is-small { 11 | padding-bottom: 2px; 12 | padding-left: 10px; 13 | } 14 | &.is-medium { 15 | padding-bottom: 5px; 16 | } 17 | &.is-large { 18 | padding-bottom: 7px; 19 | } 20 | &:focus, &:active { 21 | border-color: $light-grey; 22 | } 23 | &.rounded { 24 | border-radius: 100px; 25 | } 26 | &.is-primary-focus:focus { 27 | border-color: $primary; 28 | ~ span.icon i { 29 | color: $primary; 30 | } 31 | } 32 | &.is-secondary-focus:focus { 33 | border-color: $secondary; 34 | ~ span.icon i { 35 | color: $secondary; 36 | } 37 | } 38 | &.is-accent-focus:focus { 39 | border-color: $accent; 40 | ~ span.icon i { 41 | color: $accent; 42 | } 43 | } 44 | &.is-bloody-focus:focus { 45 | border-color: $bloody; 46 | ~ span.icon i { 47 | color: $bloody; 48 | } 49 | } 50 | } 51 | 52 | .form-footer { 53 | width: 100%; 54 | } -------------------------------------------------------------------------------- /assets/fresh/partials/_hero.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Hero styles 3 | ========================================================================== */ 4 | 5 | .hero-body { 6 | padding-top: 6rem; 7 | padding-bottom: 6rem; 8 | .title, .subtitle { 9 | font-family: 'Open Sans', sans-serif; 10 | } 11 | .title { 12 | &.is-bold { 13 | font-weight: 700; 14 | } 15 | } 16 | .subtitle { 17 | &.is-muted { 18 | color: $muted-grey; 19 | } 20 | } 21 | } 22 | 23 | .hero-foot { 24 | img.partner-logo { 25 | height: 70px; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /assets/fresh/partials/_navbar.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Navbar 3 | ========================================================================== */ 4 | 5 | //Navbar 6 | .navbar.is-fresh { 7 | position: relative; 8 | min-height: 3.8rem; 9 | transition: all .3s; 10 | z-index: 99; 11 | .container { 12 | min-height: 4rem; 13 | } 14 | &.no-shadow { 15 | box-shadow: none !important; 16 | } 17 | //Responsive menu icon 18 | .navbar-burger { 19 | width: 4rem; 20 | height: 4rem; 21 | } 22 | //Brand 23 | .navbar-brand { 24 | min-height: 4rem; 25 | img { 26 | max-height: 36px !important; 27 | height: 36px; 28 | } 29 | //Removing navbar item default hover behaviour 30 | &:hover { 31 | .navbar-item { 32 | background: transparent !important; 33 | } 34 | } 35 | } 36 | .navbar-end { 37 | align-items: center; 38 | } 39 | //Navbar items 40 | .navbar-item { 41 | color: $muted-grey; 42 | &.is-secondary { 43 | &:hover { 44 | color: $secondary !important; 45 | } 46 | } 47 | &.has-dropdown { 48 | padding: 10px 0; 49 | .navbar-link { 50 | color: $muted-grey; 51 | &:after { 52 | top: 55%; 53 | height: 0.5em; 54 | width: 0.5em; 55 | border-width: 2px; 56 | border-color: $muted-grey; 57 | } 58 | } 59 | .navbar-dropdown { 60 | top: 3.4rem; 61 | min-width: 220px; 62 | margin-top: 4px; 63 | border-top-color: $secondary; 64 | .navbar-item { 65 | padding: 10px 20px; 66 | } 67 | } 68 | &:hover { 69 | .navbar-link { 70 | color: $secondary; 71 | &:after { 72 | border-color: $secondary; 73 | } 74 | } 75 | } 76 | } 77 | .signup { 78 | display: block; 79 | line-height: 0; 80 | font-size: .9rem !important; 81 | } 82 | } 83 | 84 | //Fixed navbar modifier 85 | &.is-fixed { 86 | position: fixed; 87 | top: 0; 88 | left: 0; 89 | width: 100%; 90 | min-height: 4rem !important; 91 | background: $white; 92 | box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.12); 93 | a { 94 | color: $blue-grey; 95 | &:hover { 96 | color: $primary; 97 | } 98 | } 99 | } 100 | } 101 | 102 | //Cloned fixed navbar 103 | #navbar-clone { 104 | position: fixed; 105 | top: 0; 106 | left: 0; 107 | width: 100%; 108 | background: $white; 109 | transform: translateY(-100%); 110 | z-index: 100; 111 | box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.12); 112 | &.is-active { 113 | transform: translateY(0); 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /assets/fresh/partials/_responsive.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Responsive Styles 3 | ========================================================================== */ 4 | 5 | @media (max-width: 767px) { 6 | 7 | .landing-caption { 8 | text-align: center; 9 | } 10 | .navbar-menu { 11 | .is-static { 12 | position: absolute; 13 | width: 100%; 14 | } 15 | .is-fixed { 16 | position: fixed; 17 | width: 100%; 18 | } 19 | .navbar-item { 20 | text-align: center !important; 21 | .signup-button { 22 | width: 100% !important; 23 | } 24 | } 25 | .navbar-link { 26 | padding: 10px 20px !important; 27 | } 28 | } 29 | .title.section-title { 30 | font-size: 2rem !important; 31 | } 32 | .level-left.level-social { 33 | display: flex; 34 | justify-content: flex-start; 35 | } 36 | .pushed-image { 37 | margin-top: 0 !important; 38 | } 39 | .testimonial { 40 | margin: 0 auto; 41 | } 42 | } 43 | 44 | 45 | @media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) { 46 | .landing-caption { 47 | text-align: center; 48 | } 49 | .navbar-menu { 50 | .is-static { 51 | position: absolute; 52 | width: 100%; 53 | } 54 | .is-fixed { 55 | position: fixed; 56 | width: 100%; 57 | } 58 | .navbar-item { 59 | text-align: center !important; 60 | .signup-button { 61 | width: 100% !important; 62 | } 63 | } 64 | .navbar-link { 65 | padding: 10px 20px !important; 66 | } 67 | } 68 | .pushed-image { 69 | margin-top: 0 !important; 70 | } 71 | .testimonial { 72 | margin: 0 auto; 73 | } 74 | .is-centered-tablet-portrait { 75 | text-align: center !important; 76 | .divider { 77 | margin: 0 auto !important; 78 | } 79 | } 80 | } -------------------------------------------------------------------------------- /assets/fresh/partials/_sections.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Section Styles 3 | ========================================================================== */ 4 | 5 | //Sections 6 | .section { 7 | &.section-light-grey { 8 | background-color: $light-grey; 9 | } 10 | &.section-feature-grey { 11 | background-color: $section-grey; 12 | } 13 | &.section-secondary { 14 | background-color: $secondary; 15 | } 16 | &.section-half { 17 | height: 75vh !important; 18 | } 19 | .title, .subtitle { 20 | font-family: 'Open Sans', sans-serif; 21 | 22 | } 23 | .subtitle { 24 | &.is-muted { 25 | color: $muted-grey; 26 | } 27 | } 28 | } 29 | 30 | //Titles 31 | .title-wrapper { 32 | max-width: 500px; 33 | margin: 0 auto; 34 | .title, .subtitle { 35 | font-family: 'Open Sans', sans-serif; 36 | 37 | } 38 | .subtitle { 39 | &.is-muted { 40 | color: $muted-grey; 41 | } 42 | } 43 | } 44 | 45 | //Divider 46 | .divider { 47 | height: 3px; 48 | border-radius: 50px; 49 | background: $secondary; 50 | width: 60px; 51 | &.is-centered { 52 | margin: 0 auto; 53 | } 54 | } 55 | 56 | //Wrapper 57 | .content-wrapper { 58 | padding: 60px 0; 59 | } 60 | 61 | 62 | //Pulled image 63 | img.pushed-image { 64 | margin-top: -5vh; 65 | } 66 | 67 | //Icon box 68 | .media.icon-box { 69 | border-top: none !important; 70 | .media-content .content p { 71 | span { 72 | display: block; 73 | } 74 | .icon-box-title { 75 | color: $blue-grey; 76 | font-size: 1.2rem; 77 | font-weight: 600; 78 | } 79 | .icon-box-text { 80 | color: $title-grey; 81 | font-size: 1rem; 82 | font-weight: 400; 83 | } 84 | } 85 | } -------------------------------------------------------------------------------- /assets/fresh/partials/_sidebar.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Sidebar Styles 3 | ========================================================================== */ 4 | 5 | //Sidebar animated icon trigger 6 | .menu-icon-wrapper { 7 | position: relative; 8 | left: 0; 9 | top: 0; 10 | //margin: -12px 0px 0px -12px; 11 | width: 34px; 12 | height: 34px; 13 | pointer-events: none; 14 | transition: 0.1s; 15 | svg { 16 | position: absolute; 17 | top: -18px; 18 | left: -18px; 19 | transform: scale(0.07); 20 | transform-origin: 0 0; 21 | path { 22 | stroke: $secondary; 23 | stroke-width: 40px; 24 | stroke-linecap: round; 25 | stroke-linejoin: round; 26 | fill: transparent; 27 | transition: stroke-dasharray 0.5s; 28 | &.path1 { 29 | stroke-dashoffset: 5803.15px; 30 | stroke-dasharray: 2901.57px, 2981.57px, 240px; 31 | } 32 | &.path2 { 33 | stroke-dashoffset: 800px; 34 | stroke-dasharray: 400px, 480px, 240px; 35 | } 36 | &.path3 { 37 | stroke-dashoffset: 6993.11px; 38 | stroke-dasharray: 3496.56px, 3576.56px, 240px; 39 | } 40 | } 41 | } 42 | &.open { 43 | svg { 44 | path { 45 | &.path1 { 46 | stroke-dasharray: 2901.57px, 5258.15px, 240px; 47 | } 48 | &.path2 { 49 | stroke-dasharray: 400px, 600px, 0px; 50 | } 51 | &.path3 { 52 | stroke-dasharray: 3496.56px, 6448.11px, 240px; 53 | } 54 | } 55 | } 56 | } 57 | .menu-icon-trigger { 58 | position: relative; 59 | width: 100%; 60 | height: 100%; 61 | cursor: pointer; 62 | pointer-events: auto; 63 | background: none; 64 | border: none; 65 | margin: 0; 66 | padding: 0; 67 | } 68 | } 69 | 70 | //Sidebar 71 | .sidebar { 72 | background: $dark-grey; 73 | width: 280px; 74 | height: 100%; 75 | position: fixed; 76 | top: 0; 77 | left: 0; 78 | transform: translateX(-281px); 79 | transition: all .3s; 80 | z-index: 10000; 81 | overflow-y: auto; 82 | &.is-active { 83 | transform: translateX(0); 84 | } 85 | .sidebar-header { 86 | height: 4.25rem; 87 | display: flex; 88 | justify-content: space-between; 89 | align-items: center; 90 | border-bottom: 1px solid lighten($dark-grey, 5%); 91 | padding: 0 20px; 92 | img { 93 | height: 32px; 94 | } 95 | a { 96 | width: 24px; 97 | height: 24px; 98 | } 99 | svg { 100 | stroke: $white; 101 | transform: rotate(0); 102 | transition: all .3s; 103 | cursor: pointer; 104 | &:hover { 105 | stroke: $secondary; 106 | transform: rotate(180deg); 107 | } 108 | } 109 | } 110 | .inner { 111 | position: relative; 112 | .sidebar-menu { 113 | margin: 0; 114 | padding: 0; 115 | max-width: 400px; 116 | list-style: none; 117 | list-style-type: none; 118 | font-family: 'Open Sans', sans-serif !important; 119 | li { 120 | a { 121 | padding: 20px 25px; 122 | display: block; 123 | text-decoration: none; 124 | color: $white; 125 | &:hover { 126 | padding: 20px 25px; 127 | display: block; 128 | text-decoration: none; 129 | color: $white; 130 | } 131 | } 132 | a span { 133 | margin-right: 20px; 134 | color: $white; 135 | } 136 | &.have-children { 137 | ul { 138 | padding: 0px; 139 | } 140 | li { 141 | a { 142 | background-color: darken($dark-grey, 5%); 143 | padding-left: 62px; 144 | border-bottom: 1px solid darken($dark-grey, 2%); 145 | font-size: .8rem; 146 | &:hover { 147 | color: $primary; 148 | padding-left: 62px; 149 | } 150 | } 151 | } 152 | span::after { 153 | position: absolute; 154 | top: 27px; 155 | right: 30px; 156 | content: "\f054"; 157 | color: $white; 158 | transition: all .5s; 159 | font-weight: 200 !important; 160 | font-size: .8rem; 161 | } 162 | } 163 | } 164 | } 165 | li.have-children, li { 166 | position: relative; 167 | } 168 | li.have-children.active > a, li.have-children.active > a span, li.have-children.active > a span:after { 169 | color: $secondary; 170 | } 171 | li.active.have-children span::after { 172 | -moz-transform: rotate(90deg); 173 | -o-transform: rotate(90deg); 174 | -webkit-transform: rotate(90deg); 175 | transform: rotate(90deg); 176 | } 177 | .sidebar-menu .have-children > ul { 178 | display: none; 179 | } 180 | } 181 | } 182 | -------------------------------------------------------------------------------- /assets/fresh/partials/_testimonials.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Testimonials Styles 3 | ========================================================================== */ 4 | 5 | .testimonial { 6 | position: relative; 7 | overflow: hidden; 8 | margin: 10px auto; 9 | min-width: 220px; 10 | max-width: 310px; 11 | width: 100%; 12 | color: #333; 13 | text-align: left; 14 | box-shadow: none !important; 15 | * { 16 | -webkit-box-sizing: border-box; 17 | box-sizing: border-box; 18 | } 19 | img { 20 | max-width: 100%; 21 | height: 80px; 22 | width: 80px; 23 | border-radius: 50%; 24 | margin-right: 5px; 25 | display: block; 26 | z-index: 1; 27 | position: absolute; 28 | right: 60%; 29 | } 30 | blockquote { 31 | margin: 0; 32 | display: block; 33 | border-radius: 8px; 34 | position: relative; 35 | background-color: $smoke-white; 36 | padding: 30px 50px 65px 50px; 37 | font-size: 1.2rem; 38 | font-weight: 500; 39 | margin: 0 0 -40px; 40 | line-height: 1.6em; 41 | box-shadow: 0 0 5px rgba(0, 0, 0, 0.15); 42 | } 43 | blockquote:before, blockquote:after { 44 | font-family: 'FontAwesome'; 45 | content: "\f10d"; 46 | position: absolute; 47 | font-size: 20px; 48 | opacity: 0.3; 49 | font-style: normal; 50 | } 51 | blockquote:before { 52 | top: 35px; 53 | left: 20px; 54 | } 55 | blockquote:after { 56 | content: "\f10e"; 57 | right: 20px; 58 | bottom: 35px; 59 | } 60 | .author { 61 | margin: 0; 62 | height: 80px; 63 | display: block; 64 | text-align: left; 65 | color: $white; 66 | padding: 0 35px; 67 | position: relative; 68 | z-index: 0; 69 | h5, span { 70 | left: 50%; 71 | position: absolute; 72 | opacity: 0.8; 73 | padding: 3px 5px; 74 | } 75 | h5 { 76 | text-transform: capitalize; 77 | bottom: 60%; 78 | margin: 0; 79 | font-weight: 600; 80 | font-size: 1.2rem; 81 | color: $blue-grey; 82 | } 83 | span { 84 | font-size: 0.8em; 85 | color: $white; 86 | top: 50%; 87 | } 88 | } 89 | } 90 | 91 | -------------------------------------------------------------------------------- /assets/fresh/partials/_utils.scss: -------------------------------------------------------------------------------- 1 | // Resets 2 | section:focus { 3 | outline: none !important; 4 | } 5 | 6 | button { 7 | &:focus, &:active { 8 | outline: none; 9 | } 10 | } 11 | 12 | // Preloader 13 | #preloader { 14 | position: fixed; 15 | top: 0; 16 | left: 0; 17 | right: 0; 18 | bottom: 0; 19 | background-color: $white; 20 | z-index: 99; 21 | } 22 | 23 | #status { 24 | width: 200px; 25 | height: 200px; 26 | position: absolute; 27 | left: 50%; 28 | // centers the loading animation horizontally on the screen 29 | top: 50%; 30 | // centers the loading animation vertically on the screen 31 | background-image: url(../images/loaders/rings.svg); 32 | background-size: 80px 80px; 33 | // path to loading animation 34 | background-repeat: no-repeat; 35 | background-position: center; 36 | margin: -100px 0 0 -100px; 37 | // width and height divided by two 38 | } 39 | 40 | // Back to top button 41 | #backtotop { 42 | position: fixed; 43 | right: 0; 44 | opacity: 0; 45 | visibility: hidden; 46 | bottom: 25px; 47 | margin: 0 25px 0 0; 48 | z-index: 9999; 49 | transition: 0.35s; 50 | transform: scale(0.7); 51 | transition: all 0.5s; 52 | } 53 | 54 | #backtotop.visible { 55 | opacity: 1; 56 | visibility: visible; 57 | transform: scale(1); 58 | 59 | } 60 | 61 | #backtotop.visible a:hover { 62 | outline: none; 63 | opacity: 0.9; 64 | background: $secondary; 65 | } 66 | 67 | #backtotop a { 68 | outline: none; 69 | text-decoration: none; 70 | border: 0 none; 71 | display: block; 72 | width: 46px; 73 | height: 46px; 74 | background-color: $medium-grey; 75 | opacity: 1; 76 | transition: all 0.3s; 77 | border-radius: 50%; 78 | text-align: center; 79 | font-size: 26px 80 | } 81 | 82 | body #backtotop a { 83 | outline: none; 84 | color: #fff; 85 | } 86 | 87 | #backtotop a:after { 88 | outline: none; 89 | content: "\f106"; 90 | font-family: "FontAwesome"; 91 | position: relative; 92 | display: block; 93 | top: 50%; 94 | -webkit-transform: translateY(-55%); 95 | transform: translateY(-55%); 96 | } 97 | 98 | 99 | //Helpers 100 | .is-disabled { 101 | pointer-events: none; 102 | opacity: 0.4; 103 | cursor: default !important; 104 | } 105 | 106 | .is-hidden { 107 | display: none !important; 108 | } 109 | 110 | .stuck { 111 | position:fixed !important; 112 | top: 0 !important; 113 | z-index: 2 !important; 114 | } 115 | 116 | .light-text { 117 | color: $white !important; 118 | } 119 | 120 | .mb-20 { 121 | margin-bottom: 20px; 122 | } 123 | 124 | .mb-40 { 125 | margin-bottom: 40px; 126 | } 127 | 128 | .mb-60 { 129 | margin-bottom: 60px; 130 | } 131 | 132 | .mt-20 { 133 | margin-top: 20px; 134 | } 135 | 136 | .mt-40 { 137 | margin-top: 40px; 138 | } 139 | 140 | .mt-50 { 141 | margin-top: 50px; 142 | } 143 | 144 | .mt-60 { 145 | margin-top: 60px; 146 | } 147 | 148 | .ml-30 { 149 | margin-left: 30px; 150 | } 151 | 152 | .huge-pb { 153 | padding-bottom: 100px; 154 | } 155 | 156 | .pb-20 { 157 | padding-bottom: 20px !important; 158 | } 159 | 160 | .pb-40 { 161 | padding-bottom: 40px !important; 162 | } 163 | 164 | //Input placeholders 165 | ::-webkit-input-placeholder { /* Chrome/Opera/Safari */ 166 | color: $placeholder; 167 | } 168 | ::-moz-placeholder { /* Firefox 19+ */ 169 | color: $placeholder; 170 | } 171 | :-ms-input-placeholder { /* IE 10+ */ 172 | color: $placeholder; 173 | } 174 | :-moz-placeholder { /* Firefox 18- */ 175 | color: $placeholder; 176 | } -------------------------------------------------------------------------------- /assets/style.sass: -------------------------------------------------------------------------------- 1 | @import "bulma/bulma" 2 | @import "fresh/core" -------------------------------------------------------------------------------- /config.yaml: -------------------------------------------------------------------------------- 1 | # Dependency 'bulma' is brought in as module 2 | # and mount points are declared 3 | module: 4 | imports: 5 | - path: github.com/jgthms/bulma 6 | mounts: 7 | - source: bulma.sass 8 | target: assets/bulma/bulma.sass 9 | - source: bulma-rtl.sass 10 | target: assets/bulma/bulma-rtl.sass 11 | - source: sass 12 | target: assets/bulma/sass 13 | - source: sass/base 14 | target: assets/bulma/sass/base 15 | - source: sass/components 16 | target: assets/bulma/sass/components 17 | - source: sass/elements 18 | target: assets/bulma/sass/elements 19 | - source: sass/form 20 | target: assets/bulma/sass/form 21 | - source: sass/grid 22 | target: assets/bulma/sass/grid 23 | - source: sass/helpers 24 | target: assets/bulma/sass/helpers 25 | - source: sass/layout 26 | target: assets/bulma/sass/layout 27 | - source: sass/utilities 28 | target: assets/bulma/sass/utilities 29 | -------------------------------------------------------------------------------- /docs/content/deepmodifications.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Deep modification 3 | sidebar: true 4 | sidebarlogo: fresh-white 5 | include_footer: false 6 | --- 7 | 8 | ## Deep modifications 9 | 10 | In case you want to make deep modifications of this theme (like changing the colors) you have to 11 | add the theme as an git submodule rather than as a [hugo module](../module). 12 | 13 | To create a new site using this theme as hugo module: 14 | ```bash 15 | # Create site and cd into it 16 | hugo new site my-site && cd my-site 17 | 18 | # Make a git project out of it 19 | git init 20 | 21 | # Add this theme as a git submodule 22 | git submodule add https://github.com/StefMa/hugo-fresh.git themes/hugo-fresh 23 | 24 | # Add the dependency to the css files as a git submodule and checkout version 0.9.4 25 | git submodule add https://github.com/jgthms/bulma.git themes/bulma 26 | cd themes/bulma && git checkout 0.9.4 27 | 28 | # Go back from themes/bulma dir 29 | cd ../.. 30 | 31 | # Remove the default config 32 | rm config.toml 33 | 34 | # Fetch the example config 35 | curl -O https://raw.githubusercontent.com/StefMa/hugo-fresh/master/exampleSite/hugo.yaml 36 | 37 | # Configure the theme as git submodule 38 | # Remove the 'module' section in the `hugo.yml` and add 39 | # theme: 'hugo-fresh' (See also https://github.com/StefMa/hugo-fresh/issues/175#issuecomment-1863358700) 40 | 41 | # Change the path of the bulma css files 42 | # Replace `github.com/jgthms/bulma` with `bulma` in 43 | # my-site/themes/hugo-fresh/config.yml 44 | 45 | # Run the site locally 46 | hugo server 47 | 48 | # Open the site in your browser 49 | open http://localhost:1313 50 | ``` 51 | 52 | Now you're able to change anything in the theme to your needs. 53 | 54 | To change the colors for example, open 55 | `my-site/themes/hugo-fresh/assets/fresh/partials/_colors.scss` 56 | and customizes to your needs. 57 | 58 | ```diff 59 | - $primary: #4FC1E; 60 | - $secondary: #F39200; 61 | + $primary: #b85ca2; 62 | + $secondary: #2ee62e; 63 | ``` 64 | 65 | -------------------------------------------------------------------------------- /docs/content/getstarted.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Get Started 3 | sidebar: true 4 | sidebarlogo: fresh-white 5 | include_footer: false 6 | --- 7 | 8 | ## The Fresh theme for Hugo 9 | 10 | **Fresh** is a theme for the [Hugo](https://gohugo.io) static site generator adapted from the gorgeous, [Bulma](https://bulma.io)-based theme of the same name from [CSS Ninja](https://cssninja.io/product/fresh). You can find a live demo of the original theme [here](https://fresh.cssninja.io) and a live demo of the Hugo theme [here](https://hugo-fresh.now.sh/). 11 | 12 | 13 | 14 | ## Getting started 15 | 16 | To create a new site using this theme as hugo module: 17 | 18 | Make sure `go` > 1.13 is installed on your system. [Download](https://go.dev/dl/) and install if needed. 19 | 20 | ```bash 21 | # Create site and cd into it 22 | hugo new site my-site && cd my-site 23 | 24 | # Transform your hugo site to an module 25 | hugo mod init YOUR_MODULE_NAME 26 | 27 | # Remove the default config 28 | rm hugo.toml 29 | 30 | # Fetch the example config 31 | curl -O https://raw.githubusercontent.com/StefMa/hugo-fresh/master/exampleSite/hugo.yaml 32 | 33 | # Run the site locally 34 | hugo server 35 | 36 | # Open the site in your browser 37 | open http://localhost:1313 38 | ``` 39 | 40 | ## Customizing your page 41 | 42 | Checkout the [Landing page docs](../landingpage) to customize the landing page. 43 | 44 | There is also the option to create single pages. Check the [Single page docs](../singlepage) for more. 45 | 46 | Have some troubles? Check our [troubleshooting](../troubleshooting) guide. 47 | 48 | Interested in changed colors? Checkout the [Deep modifications](../deepmodifications) guide. 49 | -------------------------------------------------------------------------------- /docs/content/landingpage.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Landing page 3 | sidebar: true 4 | sidebarlogo: fresh-white 5 | include_footer: false 6 | --- 7 | 8 | ## Customize the landing page 9 | There's a wide variety of customizations that you can make to your Hugo Fresh landing page by modifying the `hugo.yaml` file that you downloaded. 10 | 11 | > **Note**: There is always an up-to-date config file at [`exampleSite/hugo.yaml`](https://github.com/StefMa/hugo-fresh/blob/master/exampleSite/hugo.yaml) that contains all possible configurations. 12 | Please make sure you check them out as well. 13 | 14 | {{< title4 preloader >}} 15 | Preloader ensures images are loaded before displaying to the user. 16 | If you don't want it, set it to `false`. 17 | 18 | ```yaml 19 | preloader: false 20 | ``` 21 | 22 | {{< title4 navbarlogo >}} 23 | Define the logo of the navigation bar in the upper left corner. 24 | 25 |
26 | Code 27 | 28 | ```yaml 29 | navbarlogo: 30 | image: logos/fresh.svg # Logo (from static/images/logos/) 31 | link: / 32 | ``` 33 | 34 |
35 | 36 | {{< title4 font >}} 37 | Set the font of the site. 38 | 39 |
40 | Code 41 | 42 | ```yaml 43 | font: 44 | name: "Open Sans" 45 | sizes: [400,600] 46 | ``` 47 | 48 |
49 | 50 | {{< title4 hero >}} 51 | The "main" page which you see when you open the website. 52 | 53 |
54 | Code 55 | 56 | ```yaml 57 | hero: 58 | title: Manage. Deploy. 59 | subtitle: Lorem ipsum sit dolor amet is dummy text used by the typography industry 60 | buttontext: Get started 61 | buttonlink: "#" 62 | image: illustrations/worker.svg 63 | # Footer logos (from static/images/logos/clients/*.svg) 64 | # urls are optional 65 | clientlogos: 66 | - logo: systek 67 | url: https://google.com 68 | - logo: tribe 69 | url: https://stefma.github.io/hugo-fresh/ 70 | - logo: kromo 71 | url: https://github.com/StefMa/hugo-fresh 72 | - logo: infinite 73 | url: https://hugo-fresh.vercel.app/ 74 | - logo: gutwork 75 | url: https://bulma.io/ 76 | ``` 77 | 78 |
79 | 80 | {{< title4 navbar >}} 81 | The navigation bar which is at the top of the site. 82 | For a dropdown, add a "sublinks" list. 83 | 84 |
85 | Code 86 | 87 | ```yaml 88 | navbar: 89 | - title: Features 90 | url: / 91 | - title: Pricing 92 | url: / 93 | - title: Dropdown 94 | sublinks: 95 | - title: Dropdown item 96 | url: / 97 | - title: Dropdown item 98 | url: / 99 | - title: Dropdown item 100 | url: / 101 | - title: Log in 102 | url: / 103 | - title: Sign up 104 | url: / 105 | button: true 106 | ``` 107 | 108 |
109 | 110 | {{< title4 sidebar >}} 111 | The sidebar is an optional parameter where you can place even more navigation items. 112 | 113 |
114 | Code 115 | 116 | ```yaml 117 | sidebar: 118 | # Logo (from /images/logos/___.svg) 119 | logo: fresh-square 120 | sections: 121 | - title: User 122 | icon: user 123 | links: 124 | - text: Profile 125 | url: / 126 | - text: Account 127 | url: / 128 | - text: Settings 129 | url: / 130 | - title: Messages 131 | icon: envelope 132 | links: 133 | - text: Inbox 134 | url: / 135 | - text: Compose 136 | url: / 137 | - title: Images 138 | icon: image 139 | links: 140 | - text: Library 141 | url: / 142 | - text: Upload 143 | url: / 144 | - title: Settings 145 | icon: cog 146 | links: 147 | - text: User settings 148 | url: / 149 | - text: App settings 150 | url: / 151 | ``` 152 | 153 |
154 | 155 | {{< title4 section1 >}} 156 | Describes the second "page" which you will see when you scroll down. Currently it will have **always** three `titles`. 157 | 158 |
159 | Code 160 | 161 | ```yaml 162 | section1: 163 | title: Great power comes 164 | subtitle: with great responsibility 165 | tiles: 166 | - title: App builder 167 | icon: mouse-globe 168 | text: This is some explanatory text that is on two rows 169 | url: / 170 | buttonText: Free trial 171 | - title: Cloud integration 172 | icon: laptop-cloud 173 | text: This is some explanatory text that is on two rows 174 | url: / 175 | buttonText: Get started 176 | - title: Add-ons & plugins 177 | icon: plug-cloud 178 | text: This is some explanatory text that is on two rows 179 | url: / 180 | buttonText: Get started 181 | ``` 182 | 183 |
184 | 185 | {{< title4 section2 >}} 186 | Shows information why someone should use this product. 187 | 188 |
189 | Code 190 | 191 | ```yaml 192 | section2: 193 | title: You're here because you want the best 194 | subtitle: And we know it 195 | features: 196 | - title: Powerful and unified interface 197 | text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare magna eros, eu pellentesque tortor vestibulum ut. Maecenas non massa sem. Etiam finibus odio quis feugiat facilisis. 198 | # Icon (from /images/illustrations/icons/___.svg) 199 | icon: laptop-globe 200 | - title: Cross-device synchronisation 201 | text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare magna eros, eu pellentesque tortor vestibulum ut. Maecenas non massa sem. Etiam finibus odio quis feugiat facilisis. 202 | icon: doc-sync 203 | - title: Nomad system 204 | text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare magna eros, eu pellentesque tortor vestibulum ut. Maecenas non massa sem. Etiam finibus odio quis feugiat facilisis. 205 | icon: mobile-feed 206 | ``` 207 | 208 |
209 | 210 | {{< title4 section3 >}} 211 | Display a bright image of your product. 212 | 213 |
214 | Code 215 | 216 | ```yaml 217 | section3: 218 | title: One platform 219 | subtitle: To rule them all 220 | image: illustrations/mockups/app-mockup.png 221 | buttonText: Get started 222 | buttonLink: "#" 223 | ``` 224 | 225 |
226 | 227 | {{< title4 section4 >}} 228 | What clients says about us. 229 | 230 |
231 | Code 232 | 233 | ```yaml 234 | section4: 235 | title: Our Clients love us! 236 | subtitle: Lorem ipsum sit dolor amet is a dummy text used by typography industry 237 | clients: 238 | - name: Irma Walters 239 | quote: Lorem ipsum dolor sit amet, elit deleniti dissentias quo eu, hinc minim appetere te usu, ea case duis scribentur has. Duo te consequat elaboraret, has quando suavitate at. 240 | job: Accountant 241 | img: 1 # From (static/images/illustrations/faces) 242 | - name: John Bradley 243 | quote: Lorem ipsum dolor sit amet, elit deleniti dissentias quo eu, hinc minim appetere te usu, ea case duis scribentur has. Duo te consequat elaboraret, has quando suavitate at. 244 | job: Financial Analyst 245 | img: 2 246 | - name: Gary Blackman 247 | quote: Lorem ipsum dolor sit amet, elit deleniti dissentias quo eu, hinc minim appetere te usu, ea case duis scribentur has. Duo te consequat elaboraret, has quando suavitate at. 248 | job: HR Manager 249 | img: 3 250 | ``` 251 | 252 |
253 | 254 | {{< title4 section5 >}} 255 | Write us. 256 | 257 |
258 | Code 259 | 260 | ```yaml 261 | section5: 262 | title: Drop us a line or two 263 | subtitle: We'd love to hear from you 264 | buttonText: Send Message 265 | action: https://formspree.io/f/{ID} 266 | method: POST 267 | ``` 268 | 269 |
270 | 271 | {{< title4 footer >}} 272 | The footer of the site. 273 | 274 |
275 | Code 276 | 277 | ```yaml 278 | footer: 279 | # Logo (from /static/images/logos/___) 280 | logo: fresh-white-alt.svg 281 | # Social media links (GitHub, Twitter, etc.). All are optional. 282 | socialmedia: 283 | - link: https://github.com/StefMa/hugo-fresh 284 | # Icons are from Font Awesome 285 | icon: github 286 | - link: https://dribbble.com/# 287 | icon: dribbble 288 | - link: https://facebook.com/# 289 | icon: facebook 290 | - link: https://twitter.com/lucperkins 291 | icon: twitter 292 | - link: https://bitbucket.org/# 293 | icon: bitbucket 294 | bulmalogo: true 295 | quicklinks: 296 | column1: 297 | title: "Product" 298 | links: 299 | - text: Discover features 300 | link: / 301 | - text: Why choose our product? 302 | link: / 303 | - text: Compare features 304 | link: / 305 | - text: Our roadmap 306 | link: / 307 | - text: AGB 308 | link: /agb 309 | column2: 310 | title: "Docs" 311 | links: 312 | - text: Get started 313 | link: / 314 | - text: User guides 315 | link: / 316 | - text: Admin guide 317 | link: / 318 | - text: Developers 319 | link: / 320 | column3: 321 | title: "Blog" 322 | links: 323 | - text: Latest news 324 | link: /blog/first 325 | - text: Tech articles 326 | link: /blog/second 327 | ``` 328 | 329 |
330 | -------------------------------------------------------------------------------- /docs/content/markdown-syntax.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Markdown Syntax Guide 3 | sidebar: true 4 | sidebarlogo: fresh-white 5 | include_footer: false 6 | --- 7 | 8 | This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme. 9 | 10 | 11 | 12 | ## Headings 13 | 14 | The following HTML `

`—`

` elements represent six levels of section headings. `

` is the highest section level while `

` is the lowest. 15 | 16 | # H1 17 | 18 | ## H2 19 | 20 | ### H3 21 | 22 | #### H4 23 | 24 | ##### H5 25 | 26 | ###### H6 27 | 28 | ## Paragraph 29 | 30 | Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat. 31 | 32 | Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat. 33 | 34 | ## Blockquotes 35 | 36 | The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations. 37 | 38 | #### Blockquote without attribution 39 | 40 | > Tiam, ad mint andaepu dandae nostion secatur sequo quae. 41 | > **Note** that you can use _Markdown syntax_ within a blockquote. 42 | 43 | #### Blockquote with attribution 44 | 45 | > Don't communicate by sharing memory, share memory by communicating. 46 | > 47 | > — Rob Pike[^1] 48 | 49 | [^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015. 50 | 51 | ## Tables 52 | 53 | Tables aren't part of the core Markdown spec, but Hugo supports them out-of-the-box. 54 | 55 | | Name | Age | 56 | | ----- | --- | 57 | | Bob | 27 | 58 | | Alice | 23 | 59 | 60 | #### Inline Markdown within tables 61 | 62 | | Italics | Bold | Code | 63 | | --------- | -------- | ------ | 64 | | _italics_ | **bold** | `code` | 65 | 66 | ## Code Blocks 67 | 68 | #### Inline Code 69 | 70 | `This is Inline Code` 71 | 72 | #### Only `pre` 73 | 74 |
 75 | This is pre text
 76 | 
77 | 78 | #### Code block with backticks 79 | 80 | ``` 81 | 82 | 83 | 84 | 85 | Example HTML5 Document 86 | 87 | 88 |

Test

89 | 90 | 91 | ``` 92 | 93 | #### Code block with backticks and language specified 94 | 95 | ```html {linenos=true} 96 | 97 | 98 | 99 | 100 | Example HTML5 Document 101 | 102 | 103 | 104 |

Test

105 | 106 | 107 | ``` 108 | 109 | #### Code block indented with four spaces 110 | 111 | 112 | 113 | 114 | 115 | Example HTML5 Document 116 | 117 | 118 |

Test

119 | 120 | 121 | 122 | #### Code block with Hugo's internal highlight shortcode 123 | 124 | {{< highlight html >}} 125 | 126 | 127 | 128 | 129 | 130 | Example HTML5 Document 131 | 132 | 133 |

Test

134 | 135 | 136 | {{< /highlight >}} 137 | 138 | #### Gist 139 | 140 | {{< gist spf13 7896402 >}} 141 | 142 | ## List Types 143 | 144 | #### Ordered List 145 | 146 | 1. First item 147 | 2. Second item 148 | 3. Third item 149 | 150 | #### Unordered List 151 | 152 | - List item 153 | - Another item 154 | - And another item 155 | 156 | #### Nested list 157 | 158 | - Fruit 159 | - Apple 160 | - Orange 161 | - Banana 162 | - Dairy 163 | - Milk 164 | - Cheese 165 | 166 | ## Other Elements — abbr, sub, sup, kbd, mark 167 | 168 | GIF is a bitmap image format. 169 | 170 | H2O 171 | 172 | Xn + Yn = Zn 173 | 174 | Press CTRL+ALT+Delete to end the session. 175 | 176 | Most salamanders are nocturnal, and hunt for insects, worms, and other small creatures. -------------------------------------------------------------------------------- /docs/content/misc.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Misc 3 | sidebar: true 4 | sidebarlogo: fresh-white 5 | include_footer: false 6 | --- 7 | 8 | ## Favicon 9 | 10 | You can replace the default favicon by adding your own to `static/images/favicon.png`. 11 | As for now, only pngs are possible. 12 | -------------------------------------------------------------------------------- /docs/content/module.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Hugo module 3 | sidebar: true 4 | sidebarlogo: fresh-white 5 | include_footer: false 6 | --- 7 | 8 | ## Module 9 | 10 | The theme is an [hugo modules](https://gohugo.io/hugo-modules/)-theme. 11 | It is not recommended to add this theme as a git submodule. 12 | However, it is still possible. See the [Deep modifications](../deepmodifications) guide for me. 13 | 14 | Using the theme as a hugo module provides several benefits for the development of this theme. 15 | 16 | ### Versioning / stable theme 17 | 18 | With modules it is possible to point to any git hash you like. Nevertheless, it is strongly recommended to only use a versionised version of this theme. Checkout the [GitHub Release page](https://github.com/StefMa/hugo-fresh/releases/) for the latest version. 19 | 20 | You can run the follwing command to update/change the theme version: 21 | 22 | ``` 23 | hugo mod get -u github.com/StefMa/hugo-fresh@v[SEMVER_VERSION] 24 | ``` 25 | 26 | There can be als an `hash` or an `branch` name after the `@`-sign. 27 | 28 | ### Usage 29 | 30 | 1. To use the theme you first have to transform your own hugo site to an module. Doing this is possible with the following command: 31 | 32 | ``` 33 | hugo mod init MODULE_NAME 34 | ``` 35 | 36 | A typical module name follows the following convention: `domain-name.tld/something`. 37 | 38 | 2. After that you can declare the hugo module in your config file (yaml example): 39 | 40 | ```yaml 41 | module: 42 | imports: 43 | path: github.com/StefMa/hugo-fresh 44 | ``` 45 | -------------------------------------------------------------------------------- /docs/content/singlepage.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Single page 3 | sidebar: true 4 | sidebarlogo: fresh-white 5 | include_footer: false 6 | --- 7 | 8 | ## Creating a single page 9 | Single pages displays a single unit of information and are more or less independent from the landing page above. 10 | 11 | You can create single pages in the `content` directory (even sub-dirs are possible). 12 | 13 | If you'd like to have the footer displayed on your single page include `include_footer: true` in your front matter. 14 | 15 |
16 | Code 17 | 18 | ```yaml 19 | --- 20 | title: AGB 21 | sidebar: true # or false to display the sidebar 22 | sidebarlogo: fresh-white-alt # From (static/images/logo/) 23 | include_footer: true # or false to display the footer 24 | --- 25 | ``` 26 | 27 |
28 | -------------------------------------------------------------------------------- /docs/content/troubleshooting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Troubleshooting 3 | sidebar: true 4 | sidebarlogo: fresh-white 5 | include_footer: false 6 | --- 7 | 8 | ## Hugo extended 9 | 10 | If you see `error: failed to transform resource: TOCSS: failed to transform "style.sass"` when attempting to run your `hugo server`, make sure you have the extended version of Hugo installed! 11 | -------------------------------------------------------------------------------- /docs/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/stefma/hugo-fresh/docs 2 | 3 | go 1.15 4 | 5 | replace github.com/StefMa/hugo-fresh => ../ 6 | 7 | require github.com/StefMa/hugo-fresh v1.0.0 // indirect 8 | -------------------------------------------------------------------------------- /docs/go.sum: -------------------------------------------------------------------------------- 1 | github.com/jgthms/bulma v0.0.0-20220508134905-3e00a8e6d0d0/go.mod h1:89FLBKXYFKfOKAoDeUT26V0pHGwzr205cMXAEqtAVOI= 2 | -------------------------------------------------------------------------------- /docs/hugo.yml: -------------------------------------------------------------------------------- 1 | baseURL: "https://stefma.github.io/hugo-fresh" 2 | languageCode: "en-us" 3 | title: "Hugo Fresh documentation" 4 | module: 5 | imports: 6 | path: github.com/StefMa/hugo-fresh 7 | 8 | params: 9 | navbarlogo: 10 | image: logos/fresh.svg 11 | link: /hugo-fresh 12 | hero: 13 | title: hugo fresh documentation 14 | subtitle: Probably the best hugo theme out there! 15 | buttontext: Go to docs 16 | buttonlink: getstarted 17 | image: illustrations/worker.svg 18 | navbar: 19 | - title: GitHub 20 | url: https://github.com/StefMa/hugo-fresh 21 | button: true 22 | 23 | markup: 24 | goldmark: 25 | renderer: 26 | unsafe: true # Allows you to write raw html in your md files 27 | -------------------------------------------------------------------------------- /exampleSite/.gitignore: -------------------------------------------------------------------------------- 1 | .hugo_build.lock 2 | public 3 | resources 4 | -------------------------------------------------------------------------------- /exampleSite/.htmltest.yml: -------------------------------------------------------------------------------- 1 | DirectoryPath: public 2 | -------------------------------------------------------------------------------- /exampleSite/content/agb.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: AGB 3 | include_footer: true 4 | sidebar: false 5 | --- 6 | 7 | {{% title3 "§1 Lorem" %}} 8 | Bacon ipsum dolor amet pig pork hamburger tenderloin burgdoggen spare ribs bacon pancetta pork loin tail turducken. Chicken pastrami jerky tongue ball tip strip steak. Ball tip alcatra turkey, cupim strip steak swine short loin tenderloin pancetta corned beef ribeye cow short ribs. Turkey turducken flank filet mignon beef ribs pastrami rump, andouille prosciutto picanha kevin strip steak. Corned beef fatback landjaeger hamburger alcatra, bacon buffalo tongue cow biltong salami sirloin swine. 9 | 10 |
11 | 12 | {{% title3 "§2 Bacon" %}} 13 | {{% subtitle5 "§2.1 Bacon1" %}} 14 | Buffalo cupim kielbasa spare ribs frankfurter. Ribeye pork burgdoggen tenderloin, tail strip steak bacon ham hock pork loin cupim. Bresaola biltong salami, cow ham hock doner pork chop bacon sausage short ribs. Picanha shank sausage turducken. Ham hock t-bone cupim, tri-tip biltong venison flank beef. Cupim bresaola kevin, ham hock beef hamburger tri-tip biltong sirloin filet mignon. 15 | 16 |
17 | 18 | {{% subtitle5 "§2.2 Bacon2" %}} 19 | Beef jowl tail alcatra frankfurter bacon t-bone hamburger shankle. Ham hock ball tip spare ribs turkey fatback shank short loin buffalo meatball burgdoggen pork chop shankle. Porchetta buffalo pork belly chicken leberkas drumstick. Jerky chuck brisket spare ribs ribeye pork chop shankle beef ribs beef capicola. Boudin short ribs rump flank picanha. Brisket pork loin turducken, flank jerky pastrami pork chop spare ribs bresaola beef ribs. Cow fatback tenderloin pork loin pancetta. 20 | -------------------------------------------------------------------------------- /exampleSite/content/blog/first.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: First 3 | sidebar: true 4 | sidebarlogo: fresh-white-alt 5 | --- 6 | 7 | My super sweet first blog post!! 8 | -------------------------------------------------------------------------------- /exampleSite/content/blog/second.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Second 3 | sidebar: true 4 | sidebarlogo: fresh-white-alt 5 | --- 6 | 7 | {{% title2 "My awesome blogpost" %}} 8 | My super sweet second blog post 9 | -------------------------------------------------------------------------------- /exampleSite/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/StefMa/hugo-fresh/exampleSite 2 | 3 | go 1.12 4 | 5 | replace github.com/StefMa/hugo-fresh => ../ 6 | 7 | require github.com/StefMa/hugo-fresh v1.0.0 // indirect 8 | -------------------------------------------------------------------------------- /exampleSite/go.sum: -------------------------------------------------------------------------------- 1 | github.com/jgthms/bulma v0.0.0-20220508134905-3e00a8e6d0d0/go.mod h1:89FLBKXYFKfOKAoDeUT26V0pHGwzr205cMXAEqtAVOI= 2 | -------------------------------------------------------------------------------- /exampleSite/hugo.work: -------------------------------------------------------------------------------- 1 | go 1.19 2 | 3 | use ../ -------------------------------------------------------------------------------- /exampleSite/hugo.yaml: -------------------------------------------------------------------------------- 1 | baseURL: http://something-fresh.org/ 2 | languageCode: en-us 3 | title: Hugo Fresh Theme 4 | 5 | module: 6 | # uncomment line below for local development of module 7 | # workspace: hugo.work 8 | imports: 9 | path: github.com/StefMa/hugo-fresh 10 | 11 | 12 | googleAnalytics: # Put in your tracking code without quotes like this: UA-XXX for universal tracking or G-XXX analytics v4 tracking 13 | # Disables warnings 14 | disableKinds: 15 | - taxonomy 16 | markup: 17 | goldmark: 18 | renderer: 19 | unsafe: true # Allows you to write raw html in your md files 20 | 21 | params: 22 | # Open graph allows easy social sharing. If you don't want it you can set it to false or just delete the variable 23 | openGraph: true 24 | # Used as meta data; describe your site to make Google Bots happy 25 | description: 26 | # Preloader ensures images are loaded before displaying to the user. If you don't want it uncomment to set it to false 27 | # preloader: false 28 | navbarlogo: 29 | # Logo (from static/images/logos/___) 30 | image: logos/fresh.svg 31 | link: / 32 | # Default width/height. Uncomment if you need to change 33 | # width: 112 34 | # height: 28 35 | font: 36 | name: "Open Sans" 37 | sizes: [400,600] 38 | hero: 39 | # Main hero title 40 | title: Manage. Deploy. 41 | # Hero subtitle (optional) 42 | subtitle: Lorem ipsum sit dolor amet is dummy text used by the typography industry 43 | # Button text 44 | buttontext: Get started 45 | # Where the main hero button links to 46 | buttonlink: "#" 47 | # Hero image (from static/images/___) 48 | image: illustrations/worker.svg 49 | # Footer logos (from static/images/logos/clients/*.svg) 50 | # urls are optional 51 | clientlogos: 52 | - logo: systek 53 | url: https://google.com 54 | - logo: tribe 55 | url: https://stefma.github.io/hugo-fresh/ 56 | - logo: kromo 57 | url: https://github.com/StefMa/hugo-fresh 58 | - logo: infinite 59 | url: https://hugo-fresh.vercel.app/ 60 | - logo: gutwork 61 | url: https://bulma.io/ 62 | # Customizable navbar. For a dropdown, add a "sublinks" list. 63 | navbar: 64 | - title: Features 65 | url: / 66 | - title: Pricing 67 | url: / 68 | - title: Dropdown 69 | sublinks: 70 | - title: Dropdown item 71 | url: / 72 | - title: Dropdown item 73 | url: / 74 | - title: Dropdown item 75 | url: / 76 | - title: Log in 77 | url: / 78 | - title: Sign up 79 | url: / 80 | button: true 81 | sidebar: 82 | # Logo (from static/images/logos/___.svg) 83 | logo: fresh-square 84 | sections: 85 | - title: User 86 | icon: user 87 | links: 88 | - text: Profile 89 | url: / 90 | - text: Account 91 | url: / 92 | - text: Settings 93 | url: / 94 | - title: Messages 95 | icon: envelope 96 | links: 97 | - text: Inbox 98 | url: / 99 | - text: Compose 100 | url: / 101 | - title: Images 102 | icon: image 103 | links: 104 | - text: Library 105 | url: / 106 | - text: Upload 107 | url: / 108 | - title: Settings 109 | icon: cog 110 | links: 111 | - text: User settings 112 | url: / 113 | - text: App settings 114 | url: / 115 | section1: 116 | title: Great power comes 117 | subtitle: with great responsibility 118 | tiles: 119 | - title: App builder 120 | icon: mouse-globe 121 | text: This is some explanatory text that is on two rows 122 | url: / 123 | buttonText: Free trial 124 | - title: Cloud integration 125 | icon: laptop-cloud 126 | text: This is some explanatory text that is on two rows 127 | url: / 128 | buttonText: Get started 129 | - title: Add-ons & plugins 130 | icon: plug-cloud 131 | text: This is some explanatory text that is on two rows 132 | url: / 133 | buttonText: Get started 134 | section2: 135 | title: You're here because you want the best 136 | subtitle: And we know it 137 | features: 138 | - title: Powerful and unified interface 139 | text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare magna eros, eu pellentesque tortor vestibulum ut. Maecenas non massa sem. Etiam finibus odio quis feugiat facilisis. 140 | # Icon (from static/images/illustrations/icons/___.svg) 141 | icon: laptop-globe 142 | - title: Cross-device synchronisation 143 | text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare magna eros, eu pellentesque tortor vestibulum ut. Maecenas non massa sem. Etiam finibus odio quis feugiat facilisis. 144 | icon: doc-sync 145 | - title: Nomad system 146 | text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare magna eros, eu pellentesque tortor vestibulum ut. Maecenas non massa sem. Etiam finibus odio quis feugiat facilisis. 147 | icon: mobile-feed 148 | section3: 149 | title: One platform 150 | subtitle: To rule them all 151 | image: illustrations/mockups/app-mockup.png 152 | buttonText: Get started 153 | buttonLink: "#" 154 | section4: 155 | title: Our Clients love us! 156 | subtitle: Lorem ipsum sit dolor amet is a dummy text used by typography industry 157 | clients: 158 | - name: Irma Walters 159 | quote: Lorem ipsum dolor sit amet, elit deleniti dissentias quo eu, hinc minim appetere te usu, ea case duis scribentur has. Duo te consequat elaboraret, has quando suavitate at. 160 | job: Accountant 161 | img: 1 162 | - name: John Bradley 163 | quote: Lorem ipsum dolor sit amet, elit deleniti dissentias quo eu, hinc minim appetere te usu, ea case duis scribentur has. Duo te consequat elaboraret, has quando suavitate at. 164 | job: Financial Analyst 165 | img: 2 166 | - name: Gary Blackman 167 | quote: Lorem ipsum dolor sit amet, elit deleniti dissentias quo eu, hinc minim appetere te usu, ea case duis scribentur has. Duo te consequat elaboraret, has quando suavitate at. 168 | job: HR Manager 169 | img: 3 170 | section5: 171 | title: Drop us a line or two 172 | subtitle: We'd love to hear from you 173 | buttonText: Send Message 174 | # action: https://formspree.io/f/ 175 | # method: POST 176 | footer: 177 | # Logo (from static/images/logos/___) 178 | logo: fresh-white-alt.svg 179 | # Social Media Title 180 | socialmediatitle: Follow Us 181 | # Social media links (GitHub, Twitter, etc.). All are optional. 182 | socialmedia: 183 | - link: https://github.com/StefMa 184 | # Icons are from Font Awesome 185 | icon: github 186 | - link: https://dribbble.com/# 187 | icon: dribbble 188 | - link: https://facebook.com/# 189 | icon: facebook 190 | - link: https://twitter.com/StefMa91 191 | icon: twitter 192 | - link: https://bitbucket.org/# 193 | icon: bitbucket 194 | bulmalogo: true 195 | quicklinks: 196 | column1: 197 | title: "Product" 198 | links: 199 | - text: Discover features 200 | link: / 201 | - text: Why choose our product? 202 | link: / 203 | - text: Compare features 204 | link: / 205 | - text: Our roadmap 206 | link: / 207 | - text: AGB 208 | link: /agb 209 | column2: 210 | title: "Docs" 211 | links: 212 | - text: Get started 213 | link: / 214 | - text: User guides 215 | link: / 216 | - text: Admin guide 217 | link: / 218 | - text: Developers 219 | link: / 220 | column3: 221 | title: "Blog" 222 | links: 223 | - text: Latest news 224 | link: /blog/first 225 | - text: Tech articles 226 | link: /blog/second 227 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/StefMa/hugo-fresh 2 | 3 | go 1.12 4 | 5 | require github.com/jgthms/bulma v0.0.0-20220508134905-3e00a8e6d0d0 // indirect 6 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/jgthms/bulma v0.0.0-20220508134905-3e00a8e6d0d0 h1:d61c8CjPFq6aGikBXMepfewc8/3IbrTCiC1xHcMcvHI= 2 | github.com/jgthms/bulma v0.0.0-20220508134905-3e00a8e6d0d0/go.mod h1:89FLBKXYFKfOKAoDeUT26V0pHGwzr205cMXAEqtAVOI= 3 | -------------------------------------------------------------------------------- /images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/images/screenshot.png -------------------------------------------------------------------------------- /images/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/images/tn.png -------------------------------------------------------------------------------- /layouts/_default/baseof.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ partial "meta.html" . }} 5 | {{ block "title" . }}{{ .Site.Title }}{{ end }} 6 | {{ partial "css.html" . }} 7 | 8 | 9 | {{ if ne .Site.Params.preloader false }} 10 | 11 |
12 |
13 |
14 | {{ end }} 15 | 16 | {{ block "main" . }} 17 | {{ end }} 18 | 19 | 20 |
21 | 22 | {{ partial "javascript.html" . }} 23 | 24 | 25 | -------------------------------------------------------------------------------- /layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ "" | safeHTML }} 2 | -------------------------------------------------------------------------------- /layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | 3 | {{ partial "single/single.html" . }} 4 | 5 | {{ if .Params.include_footer }} 6 | {{ partial "footer.html" . }} 7 | {{ end }} 8 | 9 | {{ if .Params.sidebar }} 10 | {{ partial "single/sidebar.html" . }} 11 | {{ end }} 12 | 13 | {{ end }} 14 | -------------------------------------------------------------------------------- /layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | 3 | {{ if .Site.Params.hero }} 4 | {{ partial "hero.html" . }} 5 | {{ end }} 6 | 7 | {{ if .Site.Params.section1 }} 8 | {{ partial "section1.html" . }} 9 | {{ end }} 10 | 11 | {{ if .Site.Params.section2 }} 12 | {{ partial "section2.html" . }} 13 | {{ end }} 14 | 15 | {{ if .Site.Params.section3 }} 16 | {{ partial "section3.html" . }} 17 | {{ end }} 18 | 19 | {{ if .Site.Params.section4 }} 20 | {{ partial "section4.html" . }} 21 | {{ end }} 22 | 23 | {{ if .Site.Params.section5 }} 24 | {{ partial "section5.html" . }} 25 | {{ end }} 26 | 27 | {{ if .Site.Params.footer }} 28 | {{ partial "footer.html" . }} 29 | {{ end }} 30 | 31 | {{ if .Site.Params.sidebar }} 32 | {{ partial "sidebar.html" . }} 33 | {{ end }} 34 | 35 | {{ end }} -------------------------------------------------------------------------------- /layouts/partials/css.html: -------------------------------------------------------------------------------- 1 | {{- $inServerMode := "" }} 2 | {{- if gt (int (index (split hugo.Version ".") 1)) "120" }} 3 | {{ $inServerMode = hugo.IsServer }} 4 | {{- else }} 5 | {{ $inServerMode = .Site.IsServer }} 6 | {{- end }} 7 | {{- $sass := "style.sass" }} 8 | {{- $cssTarget := "css/style.css" }} 9 | {{- $cssOpts := cond ($inServerMode) (dict "targetPath" $cssTarget "enableSourceMap" true) (dict "targetPath" $cssTarget "outputStyle" "compressed") }} 10 | {{- $fontName := .Site.Params.font.name | default "Open Sans" }} 11 | {{- $fontFace := replace $fontName " " "+" }} 12 | {{- $fontSizes := delimit (.Site.Params.font.sizes | default (slice 300 400 600 700)) "," }} 13 | {{- $fontUrl := printf "https://fonts.googleapis.com/css?family=%s:%s" $fontFace $fontSizes }} 14 | 15 | 16 | {{- if $inServerMode }} 17 | {{- $css := resources.Get $sass | toCSS $cssOpts }} 18 | 19 | {{- else }} 20 | {{- $css := resources.Get $sass | toCSS $cssOpts | minify | fingerprint }} 21 | 22 | {{- end }} 23 | 24 | -------------------------------------------------------------------------------- /layouts/partials/footer.html: -------------------------------------------------------------------------------- 1 | {{- $footer := .Site.Params.footer }} 2 | {{- $logo := index $footer "logo" }} 3 | {{- $quickLinks := index $footer "quicklinks" }} 4 | {{- $socialMedia := index $footer "socialmedia" }} 5 | {{- $bulmaLogo := index $footer "bulmalogo" }} 6 | {{- $socialMediaTitle := index $footer "socialmediatitle" }} 7 |
8 |
9 |
10 |
11 | 14 |
15 | {{- range $quickLinks }} 16 |
17 | 31 |
32 | {{- end }} 33 |
34 | 54 |
55 |
56 |
57 |
58 | -------------------------------------------------------------------------------- /layouts/partials/hero-body.html: -------------------------------------------------------------------------------- 1 | {{- $hero := .Site.Params.hero }} 2 | {{- $title := index $hero "title" }} 3 | {{- $subtitle := index $hero "subtitle" }} 4 | {{- $buttonText := index $hero "buttontext" }} 5 | {{- $buttonLink := index $hero "buttonlink" }} 6 | {{- $image := index $hero "image" }} 7 |
8 |
9 |
10 |
11 |

12 | {{ $title }} 13 |

14 | {{ with $subtitle }} 15 |

16 | {{ . }} 17 |

18 | {{ end }} 19 |

20 | 21 | {{ $buttonText }} 22 | 23 |

24 |
25 |
26 |
27 | Description 28 |
29 |
30 |
31 |
32 |
-------------------------------------------------------------------------------- /layouts/partials/hero-footer.html: -------------------------------------------------------------------------------- 1 | {{- $hero := .Site.Params.hero }} 2 | {{- $clientLogos := index $hero "clientlogos" }} 3 |
4 |
5 |
6 |
    7 | {{- range $clientLogos }} 8 |
  • 9 | 10 | 11 | 12 |
  • 13 | {{- end }} 14 |
15 |
16 |
17 |
-------------------------------------------------------------------------------- /layouts/partials/hero.html: -------------------------------------------------------------------------------- 1 |
2 | {{ partial "navbar.html" . }} 3 | {{ partial "navbar-clone.html" . }} 4 | {{ partial "hero-body.html" . }} 5 | {{ partial "hero-footer.html" . }} 6 |
-------------------------------------------------------------------------------- /layouts/partials/javascript.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /layouts/partials/meta.html: -------------------------------------------------------------------------------- 1 | {{ template "_internal/google_analytics.html" . }} 2 | {{ if eq .Site.Params.openGraph true }} 3 | {{ template "_internal/opengraph.html" . }} 4 | {{ end }} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /layouts/partials/navbar-clone.html: -------------------------------------------------------------------------------- 1 | {{- $navbar := .Site.Params.navbar }} 2 | {{- $sidebarVisible := .Params.sidebar | default .Site.Params.sidebar }} 3 | {{- $navbarLogo := .Site.Params.navbarlogo }} 4 | {{- $navbarLogoWidth := .Site.Params.navbarlogo.width | default 112 }} 5 | {{- $navbarLogoHeight := .Site.Params.navbarlogo.width | default 28 }} 6 | 84 | -------------------------------------------------------------------------------- /layouts/partials/navbar.html: -------------------------------------------------------------------------------- 1 | {{- $navbar := .Site.Params.navbar }} 2 | {{- $sidebarVisible := .Params.sidebar | default .Site.Params.sidebar }} 3 | {{- $navbarLogo := .Site.Params.navbarlogo }} 4 | {{- $navbarLogoWidth := .Site.Params.navbarlogo.width | default 112 }} 5 | {{- $navbarLogoHeight := .Site.Params.navbarlogo.height | default 28 }} 6 | 84 | -------------------------------------------------------------------------------- /layouts/partials/section1.html: -------------------------------------------------------------------------------- 1 | {{- $section1 := .Site.Params.section1 }} 2 | {{- $title := index $section1 "title" }} 3 | {{- $subtitle := index $section1 "subtitle" }} 4 | {{- $tiles := index $section1 "tiles" }} 5 |
6 |
7 |
8 |

{{ $title }}

9 |

{{ $subtitle }}

10 |
11 |
12 | 13 |
14 |
15 | {{- range $tiles }} 16 |
17 |
18 |
19 |

{{ .title }}

20 |
21 |
22 | 23 |
24 |
25 |

{{ .text }}

26 |
27 |
28 | {{ .buttonText }} 29 |
30 |
31 |
32 | {{- end }} 33 |
34 |
35 |
36 |
-------------------------------------------------------------------------------- /layouts/partials/section2.html: -------------------------------------------------------------------------------- 1 | {{- $section2 := .Site.Params.section2 }} 2 | {{- $title := index $section2 "title" }} 3 | {{- $subtitle := index $section2 "subtitle" }} 4 | {{- $features := index $section2 "features" }} 5 |
6 |
7 |
8 |
9 |

{{ $title }}

10 |

{{ $subtitle }}

11 |
12 |
13 |
14 | {{- range $features }} 15 |
16 |
17 |

18 | 19 |

20 |
21 |
22 |
23 |

24 | {{ .title }} 25 | 26 | {{ .text | markdownify }} 27 |

28 |
29 |
30 |
31 | {{- end }} 32 |
33 |
34 |
35 |
-------------------------------------------------------------------------------- /layouts/partials/section3.html: -------------------------------------------------------------------------------- 1 | {{- $section3 := .Site.Params.section3 }} 2 | {{- $title := index $section3 "title" }} 3 | {{- $subtitle := index $section3 "subtitle" }} 4 | {{- $image := index $section3 "image" }} 5 | {{- $buttonText := index $section3 "buttontext" }} 6 | {{- $buttonLink := index $section3 "buttonlink" }} 7 |
8 |
9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 | 17 |
18 |

{{ $title }}

19 |

{{ $subtitle }}

20 |
21 | 22 |

23 | 24 | {{ $buttonText }} 25 | 26 |

27 |
28 |
-------------------------------------------------------------------------------- /layouts/partials/section4.html: -------------------------------------------------------------------------------- 1 | {{- $section4 := .Site.Params.section4 }} 2 | {{- $title := index $section4 "title" }} 3 | {{- $subtitle := index $section4 "subtitle" }} 4 | {{- $clients := index $section4 "clients" }} 5 |
6 |
7 | 8 |
9 |

{{ $title }}

10 | {{- with $subtitle }} 11 |

{{ . }}

12 | {{- end }} 13 |
14 | 15 |
16 |
17 | {{- range $clients }} 18 |
19 |
20 |
21 | {{ .quote }} 22 |
23 |
24 | 25 |
{{ .name }}
26 | {{ .job }} 27 |
28 |
29 |
30 | {{- end }} 31 |
32 |
33 |
34 |
-------------------------------------------------------------------------------- /layouts/partials/section5.html: -------------------------------------------------------------------------------- 1 | {{- $section5 := .Site.Params.section5 }} 2 | {{- if eq $section5 true }} 3 | {{- $section5 = dict "_" "_" }} 4 | {{- end }} 5 | {{- $title := index $section5 "title" | default "Drop us a line or two "}} 6 | {{- $subtitle := index $section5 "subtitle" | default "We'd love to hear from you" }} 7 | {{- $action := index $section5 "action" }} 8 | {{- $method := index $section5 "method" }} 9 | {{- $buttonText := index $section5 "buttontext" | default "Send Message" }} 10 |
11 |
12 |
13 |

{{ $title }}

14 |

{{ $subtitle }}

15 |
16 |
17 | 18 |
19 |
20 |
21 | 22 |
23 |
24 | 25 |
26 |
27 | 28 |
29 |
30 | 31 |
32 | 35 |
36 | 37 |
38 |
39 |
40 |
41 |
-------------------------------------------------------------------------------- /layouts/partials/sidebar.html: -------------------------------------------------------------------------------- 1 | {{- $sidebar := .Site.Params.sidebar }} 2 | {{- $logo := index $sidebar "logo" }} 3 | {{- $sections := index $sidebar "sections" }} 4 | -------------------------------------------------------------------------------- /layouts/partials/single/content.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |

{{ .Title }}

6 |
{{ .Params.Subtitle }}
7 |
8 |
9 |
10 | 11 |
12 | {{ .Content }} 13 |
14 |
15 |
16 | -------------------------------------------------------------------------------- /layouts/partials/single/sidebar.html: -------------------------------------------------------------------------------- 1 | {{- $logo := .Params.sidebarlogo }} 2 | 21 | -------------------------------------------------------------------------------- /layouts/partials/single/single.html: -------------------------------------------------------------------------------- 1 | {{ partial "navbar.html" . }} 2 | {{ partial "navbar-clone.html" . }} 3 | {{ partial "single/content.html" . }} 4 | -------------------------------------------------------------------------------- /layouts/shortcodes/subtitle1.html: -------------------------------------------------------------------------------- 1 |

{{ .Get 0 }}

2 | -------------------------------------------------------------------------------- /layouts/shortcodes/subtitle2.html: -------------------------------------------------------------------------------- 1 |

{{ .Get 0 }}

2 | -------------------------------------------------------------------------------- /layouts/shortcodes/subtitle3.html: -------------------------------------------------------------------------------- 1 |

{{ .Get 0 }}

2 | -------------------------------------------------------------------------------- /layouts/shortcodes/subtitle4.html: -------------------------------------------------------------------------------- 1 |

{{ .Get 0 }}

2 | -------------------------------------------------------------------------------- /layouts/shortcodes/subtitle5.html: -------------------------------------------------------------------------------- 1 |
{{ .Get 0 }}
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/subtitle6.html: -------------------------------------------------------------------------------- 1 |
{{ .Get 0 }}
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/title1.html: -------------------------------------------------------------------------------- 1 |

{{ .Get 0 }}

2 | -------------------------------------------------------------------------------- /layouts/shortcodes/title2.html: -------------------------------------------------------------------------------- 1 |

{{ .Get 0 }}

2 | -------------------------------------------------------------------------------- /layouts/shortcodes/title3.html: -------------------------------------------------------------------------------- 1 |

{{ .Get 0 }}

2 | -------------------------------------------------------------------------------- /layouts/shortcodes/title4.html: -------------------------------------------------------------------------------- 1 |

{{ .Get 0 }}

2 | -------------------------------------------------------------------------------- /layouts/shortcodes/title5.html: -------------------------------------------------------------------------------- 1 |
{{ .Get 0 }}
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/title6.html: -------------------------------------------------------------------------------- 1 |
{{ .Get 0 }}
2 | -------------------------------------------------------------------------------- /resources/_gen/assets/sass/style.sass_0cd3d355ec95bf1703b17a06ee0ef826.json: -------------------------------------------------------------------------------- 1 | {"Target":"css/style.min.7a984355ea0371a845ca84dd9356e5caf3fc628ad4553524aa9a665b79c54d29.css","MediaType":"text/css","Data":{"Integrity":"sha256-ephDVeoDcahFyoTdk1blyvP8YorUVTUkqppmW3nFTSk="}} -------------------------------------------------------------------------------- /static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /static/fonts/fontello.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/static/fonts/fontello.woff -------------------------------------------------------------------------------- /static/fonts/simple-line-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/static/fonts/simple-line-icons.ttf -------------------------------------------------------------------------------- /static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/static/images/favicon.png -------------------------------------------------------------------------------- /static/images/illustrations/faces/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/static/images/illustrations/faces/1.png -------------------------------------------------------------------------------- /static/images/illustrations/faces/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/static/images/illustrations/faces/2.png -------------------------------------------------------------------------------- /static/images/illustrations/faces/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/static/images/illustrations/faces/3.png -------------------------------------------------------------------------------- /static/images/illustrations/icons/doc-sync.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | 24 | 26 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /static/images/illustrations/icons/laptop-cloud.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 15 | 16 | 17 | 20 | 21 | 22 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /static/images/illustrations/icons/laptop-globe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 15 | 18 | 19 | 20 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /static/images/illustrations/icons/mobile-feed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 15 | 16 | 17 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /static/images/illustrations/icons/mouse-globe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 15 | 16 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /static/images/illustrations/icons/plug-cloud.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /static/images/illustrations/mockups/app-mockup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/static/images/illustrations/mockups/app-mockup.png -------------------------------------------------------------------------------- /static/images/illustrations/worker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/static/images/illustrations/worker.png -------------------------------------------------------------------------------- /static/images/illustrations/worker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 21 | 22 | 23 | 25 | 31 | 32 | 35 | 41 | 42 | 44 | 45 | 46 | 49 | 50 | 52 | 54 | 56 | 60 | 64 | 68 | 70 | 71 | 73 | 83 | 86 | 88 | 93 | 95 | 96 | 97 | 99 | 101 | 105 | 106 | 107 | 108 | 111 | 112 | 113 | 116 | 117 | 119 | 121 | 123 | 125 | 127 | 129 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /static/images/loaders/audio.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 15 | 16 | 17 | 21 | 22 | 23 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /static/images/loaders/ball-triangle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 17 | 18 | 19 | 25 | 31 | 32 | 33 | 38 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /static/images/loaders/bars.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 11 | 12 | 13 | 17 | 21 | 22 | 23 | 27 | 31 | 32 | 33 | 37 | 41 | 42 | 43 | 47 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /static/images/loaders/circles.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /static/images/loaders/grid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 13 | 14 | 15 | 19 | 20 | 21 | 25 | 26 | 27 | 31 | 32 | 33 | 37 | 38 | 39 | 43 | 44 | 45 | 49 | 50 | 51 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /static/images/loaders/hearts.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /static/images/loaders/oval.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /static/images/loaders/puff.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 12 | 19 | 20 | 21 | 28 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /static/images/loaders/rings.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 14 | 18 | 19 | 20 | 25 | 29 | 33 | 34 | 35 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /static/images/loaders/spinning-circles.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | 16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 | 36 | 40 | 41 | 42 | 46 | 47 | 48 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /static/images/loaders/tail-spin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 20 | 21 | 22 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /static/images/loaders/three-dots.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 12 | 13 | 14 | 18 | 22 | 23 | 24 | 28 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /static/images/logos/bulma.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /static/images/logos/clients/gutwork.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 16 | 17 | 23 | 25 | 26 | 27 | 28 | 30 | 31 | -------------------------------------------------------------------------------- /static/images/logos/clients/infinite.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 13 | 16 | 19 | 20 | 21 | 23 | 26 | 29 | 31 | 34 | 36 | 38 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /static/images/logos/clients/kromo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 17 | 22 | 27 | 35 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /static/images/logos/clients/systek.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 11 | 13 | 15 | 17 | 19 | 21 | 23 | 25 | 27 | 28 | 29 | 37 | 38 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /static/images/logos/clients/tribe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 11 | 13 | 14 | 15 | 17 | 19 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /static/images/logos/fresh-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 25 | 28 | 32 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /static/images/logos/fresh-square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /static/images/logos/fresh-white-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 25 | 28 | 32 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /static/images/logos/fresh-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | 47 | 50 | 52 | 54 | 56 | 58 | 60 | 62 | 63 | 64 | 66 | 69 | 72 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /static/images/logos/fresh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 26 | 27 | 28 | 30 | 31 | 32 | 33 | 48 | 51 | 53 | 55 | 57 | 59 | 61 | 63 | 64 | 65 | 67 | 70 | 73 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /static/images/logos/icon-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /static/images/logos/made-with-bulma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StefMa/hugo-fresh/66aa58df174904491bba3cc2407d4e71ca3c565e/static/images/logos/made-with-bulma.png -------------------------------------------------------------------------------- /static/js/fresh.js: -------------------------------------------------------------------------------- 1 | //Preloader 2 | $(window).on('load', function() { // makes sure the whole site is loaded 3 | $('#status').fadeOut(); // will first fade out the loading animation 4 | $('#preloader').delay(350).fadeOut('slow'); // will fade out the white DIV that covers the website. 5 | $('body').delay(350).css({'overflow':'visible'}); 6 | }) 7 | 8 | $(document).ready(function(){ 9 | //Mobile menu toggle 10 | if ($('.navbar-burger').length) { 11 | $('.navbar-burger').on("click", function(){ 12 | 13 | var menu_id = $(this).attr('data-target'); 14 | $(this).toggleClass('is-active'); 15 | $("#"+menu_id).toggleClass('is-active'); 16 | $('.navbar.is-light').toggleClass('is-dark-mobile') 17 | }); 18 | } 19 | 20 | //Animate left hamburger icon and open sidebar 21 | $('.menu-icon-trigger').on("click", function(e){ 22 | e.preventDefault(); 23 | $('.menu-icon-wrapper').toggleClass('open'); 24 | $('.sidebar').toggleClass('is-active'); 25 | }); 26 | 27 | //Close sidebar 28 | $('.sidebar-close').on("click", function() { 29 | $('.sidebar').removeClass('is-active'); 30 | $('.menu-icon-wrapper').removeClass('open'); 31 | }) 32 | 33 | //Sidebar menu 34 | if ($('.sidebar').length) { 35 | $(".sidebar-menu > li.have-children > a").on("click", function(i){ 36 | i.preventDefault(); 37 | if( ! $(this).parent().hasClass("active") ){ 38 | $(".sidebar-menu li ul").slideUp(); 39 | $(this).next().slideToggle(); 40 | $(".sidebar-menu li").removeClass("active"); 41 | $(this).parent().addClass("active"); 42 | } 43 | else{ 44 | $(this).next().slideToggle(); 45 | $(".sidebar-menu li").removeClass("active"); 46 | } 47 | }); 48 | } 49 | 50 | //Navbar Clone 51 | if ($('#navbar-clone').length) { 52 | $(window).on("scroll", function() { // this will work when your window scrolled. 53 | var height = $(window).scrollTop(); //getting the scrolling height of window 54 | if(height > 50) { 55 | $("#navbar-clone").addClass('is-active'); 56 | } else{ 57 | $("#navbar-clone").removeClass('is-active'); 58 | } 59 | }); 60 | } 61 | 62 | //Init feather icons 63 | feather.replace(); 64 | 65 | //reveal elements on scroll so animations trigger the right way 66 | var $window = $(window), 67 | win_height_padded = $window.height() * 1.1, 68 | isTouch = Modernizr.touch; 69 | 70 | $window.on('scroll', revealOnScroll); 71 | 72 | function revealOnScroll() { 73 | var scrolled = $window.scrollTop(); 74 | $(".revealOnScroll:not(.animated)").each(function () { 75 | var $this = $(this), 76 | offsetTop = $this.offset().top; 77 | 78 | if (scrolled + win_height_padded > offsetTop) { 79 | if ($this.data('timeout')) { 80 | window.setTimeout(function(){ 81 | $this.addClass('animated ' + $this.data('animation')); 82 | }, parseInt($this.data('timeout'),10)); 83 | } else { 84 | $this.addClass('animated ' + $this.data('animation')); 85 | } 86 | } 87 | }); 88 | } 89 | 90 | // Back to Top button behaviour 91 | var pxShow = 600; 92 | var scrollSpeed = 500; 93 | $(window).on("scroll", function() { 94 | if ($(window).scrollTop() >= pxShow) { 95 | $("#backtotop").addClass('visible'); 96 | } else { 97 | $("#backtotop").removeClass('visible'); 98 | } 99 | }); 100 | $('#backtotop a').on('click', function() { 101 | $('html, body').animate({ 102 | scrollTop: 0 103 | }, scrollSpeed); 104 | return false; 105 | }); 106 | 107 | // Select all links with hashes 108 | $('a[href*="#"]') 109 | // Remove links that don't actually link to anything 110 | .not('[href="#"]') 111 | .not('[href="#0"]') 112 | .on("click", function(event) { 113 | // On-page links 114 | if ( 115 | location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') 116 | && 117 | location.hostname == this.hostname 118 | ) { 119 | // Figure out element to scroll to 120 | var target = $(this.hash); 121 | target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); 122 | // Does a scroll target exist? 123 | if (target.length) { 124 | // Only prevent default if animation is actually gonna happen 125 | event.preventDefault(); 126 | $('html, body').animate({ 127 | scrollTop: target.offset().top 128 | }, 550, function() { 129 | // Callback after animation 130 | // Must change focus! 131 | var $target = $(target); 132 | $target.focus(); 133 | if ($target.is(":focus")) { // Checking if the target was focused 134 | return false; 135 | } else { 136 | $target.attr('tabindex','-1'); // Adding tabindex for elements not focusable 137 | $target.focus(); // Set focus again 138 | }; 139 | }); 140 | } 141 | } 142 | }); 143 | }) 144 | -------------------------------------------------------------------------------- /static/js/jquery.panelslider.min.js: -------------------------------------------------------------------------------- 1 | (function(e){"use strict";function r(r){var i=r.data("ps-options");if(e("body").hasClass(i.bodyClass)||n)return;r.trigger("psBeforeOpen"),n=!0,r.addClass("ps-active-panel"),e("body").addClass(i.bodyClass).one(t,function(e){n=!1,r.trigger("psOpen"),typeof i.onOpen=="function"&&i.onOpen()})}var t=["transitionend","webkitTransitionEnd","oTransitionEnd","MSTransitionEnd"].join(" "),n=!1;e.panelslider=function(e,t){e.panelslider(t)},e.panelslider.close=function(r){var i=e(".ps-active-panel"),s=i.data("ps-options");if(!i.length||n)return;i.trigger("psBeforeClose"),n=!0,i.removeClass("ps-active-panel"),e("body").removeClass(s.bodyClass).one(t,function(e){n=!1,i.trigger("psClose"),r&&setTimeout(function(){r()},0)})},e(document).on("click keyup",function(t){var n=e(".ps-active-panel");if(t.type=="keyup"&&t.keyCode!=27)return;n.length&&n.data("ps-options").clickClose&&e.panelslider.close()}),e(document).on("click",".ps-active-panel",function(e){e.stopPropagation()}),e.fn.panelslider=function(t){var n={bodyClass:"ps-active",clickClose:!0,onOpen:null},i=e(this.attr("href"));return i.data("ps-options",e.extend({},n,t)),this.click(function(t){var n=e(".ps-active-panel");n.length?n[0]==i[0]?e.panelslider.close():e.panelslider.close(function(){r(i)}):r(i),t.preventDefault(),t.stopPropagation()}),this}})(jQuery); -------------------------------------------------------------------------------- /theme.toml: -------------------------------------------------------------------------------- 1 | name = "Hugo Fresh" 2 | license = "MIT" 3 | licenselink = "https://github.com/StefMa/hugo-fresh/blob/master/LICENSE.md" 4 | description = "A Hugo adaptation of the Fresh theme from CSS Ninja" 5 | homepage = "https://github.com/StefMa/hugo-fresh" 6 | tags = ["responsive", "one page", "light", "onepage", "company", "clean", "landing page"] 7 | features = [] 8 | min_version = "0.45" 9 | 10 | [author] 11 | name = "Stefan M." 12 | homepage = "https://github.com/StefMa" 13 | --------------------------------------------------------------------------------