commit ea22e6fd656027ad956434484794efe93af77554 Author: realaravinth Date: Thu Sep 8 02:16:15 2022 +0530 feat: init from hostea/website diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..871ace1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +public/ +bin/ +tmp +*~ diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..7aa6984 --- /dev/null +++ b/config.toml @@ -0,0 +1,25 @@ +# The URL the site will be built for +base_url = "https://librepages.org" + +# Whether to automatically compile all Sass files in the sass directory +compile_sass = true + +# Whether to build a search index to be used later on by a JavaScript library +build_search_index = true + +taxonomies = [ + {name = "tags", feed = true}, # each tag will have its own feed + {name = "categories", paginate_by = 5}, # 5 items per page for a term + ] + +[markdown] +# Whether to do syntax highlighting +# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola +highlight_code = true + +[extra] +# Put all your custom variables here +authors = [ + { "nick"="dachary", name="Loïc Dachary", "website"="https://dachary.org" }, + { "nick"="realaravinth", name="Aravinth Manivannan", "website"="https://batsense.net" } +] diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..d96aaa6 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,3 @@ ++++ +insert_anchor_links = "right" ++++ diff --git a/content/about/index.md b/content/about/index.md new file mode 100644 index 0000000..c480bdc --- /dev/null +++ b/content/about/index.md @@ -0,0 +1,8 @@ ++++ +title = "About" +description = "About" ++++ + +LibrePages is the easiest way to manage static-sites with 100% Free +Software. It is self-ho stable but also comes with a global CDN, also +built with Free Software. diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 0000000..3db0507 --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,8 @@ ++++ +title = "Posts" +sort_by = "date" +template = "blog/index.html" +page_template = "blog/post.html" +generate_feed = true +insert_anchor_links = "right" ++++ diff --git a/content/coc/index.md b/content/coc/index.md new file mode 100644 index 0000000..e5d17a2 --- /dev/null +++ b/content/coc/index.md @@ -0,0 +1,27 @@ ++++ +title = "Code of Conduct" +description = "Code of Conduct" ++++ + +### The LibrePages collective strives to: + +- **Be friendly, patient and welcoming.** We strive to be a collective that welcomes and supports people of all backgrounds and identities. This includes, but is not limited to, members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion and mental and physical ability. +- **Be considerate.** Our work will be used by other people, and we in turn will depend on the work of others. Any decision we take will affect users and colleagues, and we should take those consequences into account when making decisions. Remember that we're a world-wide community and we have a global base of users and of contributors. Even if it's not obvious at the time, our contributions to projects managed by the hostea collective will impact the work of others. +- **Be respectful.** Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important to remember that a collective where people feel uncomfortable or threatened is not a productive one. Members of the collective should be respectful when dealing with other contributors as well as with people outside of the collective and with users of the projects managed by LibrePages. +- **Collaborate openly.** Collaboration is central to projects managed by LibrePages and to the larger free software community. This collaboration involves individuals working within teams, cross-project collaboration within LibrePages and working with other projects outside of LibrePages. This collaboration reduces redundancy, and improves the quality of our work. Internally and externally, we should always be open to collaboration. Wherever possible, we should work closely with upstream and downstream projects and others in the free software community to coordinate our technical, advocacy, documentation and other work. Our work must be done transparently and we should involve as many interested parties as early as possible. If we decide to take a different approach than others, we will let them know early, document our work and inform others regularly of our progress. We do not create private forms of communication that take away transparency or exclude other contributors and collaborators. +- **When we disagree, try to understand why.** Disagreements, both social and technical, happen all the time and LibrePages is no exception. It is important that we resolve disagreements and differing views constructively. Remember that we’re different. The strength of LibrePages comes from people with a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn’t mean that they’re wrong. +- **Focus on helping to resolve issues and learning from mistakes.** It is important that we resolve disagreements and differing views constructively and with the help of the collective. When our goals differ dramatically, we encourage the creation of alternative implementations, so that the collective can test new ideas and contribute to the discussion. +- **When we are unsure, we ask for help.** Nobody knows everything, and nobody is expected to be perfect in LibrePages. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum. + +### We take the following very seriously, and any violations may impact your ability to participate in LibrePages + +- **Be careful with your words and actions.** Do not insult or put down other participants. Harassment and other exclusionary behavior is not acceptable and should be reported. This includes but is not limited to: + - Violent threats or language directed against another person. + - Discriminatory jokes and language. + - Posting sexually suggestive, explicit or violent material. + - Posting (or threatening to post) other people's personally identifying information ("doxing"). + - Personal insults, especially those using racist or sexist terms. + - Unwelcome sexual attention. + - Advocating for, or encouraging, any of the above behavior. + - Repeated harassment of others. In general, if someone asks you to stop, then stop. +- **Respect the decision process.** Members of LibrePages should not attempt to manipulate decisons based on consensus or election results. Open debate is welcome, but vote trading, ballot stuffing and other forms of abuse are not acceptable. diff --git a/content/legalese/index.md b/content/legalese/index.md new file mode 100644 index 0000000..201781c --- /dev/null +++ b/content/legalese/index.md @@ -0,0 +1,48 @@ +--- +title: "Legalese" +draft: false +--- + +## Copyright + +The copyright of the software and content used to build the +infrastructure is held by the individual contributors who implemented +it. + +## Intellectual Property + +[Did You Say “Intellectual Property”? It's a Seductive +Mirage](https://www.gnu.org/philosophy/not-ipr.html) + +## Disclaimer of Warranty + +There is no warranty for the service, to the extent permitted by +applicable law. Except when otherwise stated in writing the service is +provided "as is" without warranty of any kind, either expressed or +implied, including, but not limited to, the implied warranties of +merchantability and fitness for a particular purpose. + +## Limitation of Liability + +In no event unless required by applicable law or agreed to in writing +will any member of the LibrePages community, or any other party who modifies +the service as permitted by LibrePages, be liable to you for damages, +including any general, special, incidental or consequential damages +arising out of the use or inability to use the service (including but +not limited to loss of data or data being rendered inaccurate or losses +sustained by you or third parties or a failure of the service to operate +with any other service), even if such member or other party has been +advised of the possibility of such damages. + +## Interpretation of the Warranty and Liability disclaimers + +If the disclaimer of warranty and limitation of liability provided above +cannot be given local legal effect according to their terms, reviewing +courts shall apply local law that most closely approximates an absolute +waiver of all civil liability in connection with the service. + +## Hosting + +The services and this web site, as well as all sub-domains, are +exclusively maintained and used by the individuals composing LibrePages. +They can be reached at contact@librepages.org. diff --git a/content/privacy-policy/index.md b/content/privacy-policy/index.md new file mode 100644 index 0000000..6fc1a85 --- /dev/null +++ b/content/privacy-policy/index.md @@ -0,0 +1,35 @@ +--- +title: "Privacy" +draft: false +--- + +**TLDR**: We do not use cookies, we do not collect any personal data and +logs aren't shared with third-parties. + +## Website visitors + +- No personal information is collected. +- No information is stored in the browser. +- No information is shared with, sent to or sold to third-parties. +- No information is shared with advertising companies. +- No information is mined and harvested for personal and behavioral trends. +- No information is monetized. + +### Information we collect and what we use it for + +Website activity is logged and stored for a period of one month for +debugging purposes. We don't share this information with anyone nor do +we run analytics on it. + +The following information is collected: + +- **Page URL:**. the page URL of each page view on this website. For + example: _https://librepages.org/contact_ +- **Browser:** We use this to reproduce browser-specific bugs people + see. This is derived from the User-Agent HTTP header. For example: _Chrome_. + +## Contact us + +[Contact us](https://matrix.to/#/#librepages:matrix.batsense.net) if you have any questions. + +Effective Date: _08th September, 2022_ diff --git a/sass/blog/main.scss b/sass/blog/main.scss new file mode 100644 index 0000000..ef76b91 --- /dev/null +++ b/sass/blog/main.scss @@ -0,0 +1,87 @@ +@import "../components/page"; +@import "../components/_link"; + +$std-trans: 0.3s; + +.blog__content { + @include md; + + p { + margin: 30px 0; + } +} + +.blog__container { + margin: auto; + max-width: 50%; +} + +.blog__list { + list-style: none; +} + +.blog__post-link, +.blog__post-link:visited { + text-decoration: none; + color: inherit; +} + +.blog__title { + margin: 35px 0; +} + +.blog__post-link { + display: block; +} + +.blog__post-item { + border-bottom: 1px dashed #333; + margin: 10px; + padding: 10px; +} + +.blog__post-item:hover { + background-color: lightgray; +} + +.blog__post-item:last-child { + border-bottom: none; +} + +.blog__post-description { + font-size: 0.9rem; + margin: 5px 0; +} + +.blog__post-tag { + font-size: 0.7rem; + font-family: monospace, monospace; +} + +.blog__post-tag:hover { + @include a_hover; +} + +.blog__post-meta { + font-size: 0.7rem; +} + +.blog__post-title { + font-size: 1.4rem; + font-weight: 550; +} + +.blog__post-tag-container { + margin: 0; +} + +.blog__post-warning { + background: yellow; + padding: 5px; + margin: 10px; + border-left: 10px solid orange; + + * { + margin: 5px !important; + } +} diff --git a/sass/blog/mobile.scss b/sass/blog/mobile.scss new file mode 100644 index 0000000..3b43409 --- /dev/null +++ b/sass/blog/mobile.scss @@ -0,0 +1,9 @@ +@import "../components/page"; + +.blog__container { + max-width: 95%; +} + +.blog__content { + @include md_mobile; +} diff --git a/sass/components/_fullscreen.scss b/sass/components/_fullscreen.scss new file mode 100644 index 0000000..3f6c693 --- /dev/null +++ b/sass/components/_fullscreen.scss @@ -0,0 +1,5 @@ +@mixin fullscreen { + height: 100vh; + min-height: 500px; + max-height: 800px; +} diff --git a/sass/components/_link.scss b/sass/components/_link.scss new file mode 100644 index 0000000..e957dba --- /dev/null +++ b/sass/components/_link.scss @@ -0,0 +1,4 @@ +@mixin a_hover { + color: rgb(0, 86, 179); + text-decoration: underline; +} diff --git a/sass/components/_page.scss b/sass/components/_page.scss new file mode 100644 index 0000000..60ff1d4 --- /dev/null +++ b/sass/components/_page.scss @@ -0,0 +1,95 @@ +@import "./_link.scss"; + +@mixin md { + img { + max-width: 100%; + display: block; + } + + video { + max-width: 100%; + display: block; + } + + li { + margin-left: 40px; + } + + a:hover { + @include a_hover; + } + + code { + word-wrap: break-word; + overflow-wrap: break-word; + } + + table { + border-collapse: collapse; + caption-side: bottom; + border-color: #e9ecef; + text-align: center; + width: 100%; + } + + table > thead { + vertical-align: bottom; + border-bottom: 1px solid #cdc8ca; + text-align: center; + } + + table { + th { + text-align: center; + } + td { + margin: auto; + padding: 10px; + border-bottom: 1px solid #edddd1; + } + } + + p, + h2, + h3 { + margin: 10px 0; + } + + pre { + padding: 10px 10px 10px 20px; + border-radius: 8px; + font-size: 0.95rem; + overflow: auto; + } + pre { + font-family: monospace, monospace; + font-display: auto; + font-size: 1em; + } +} + +@mixin md_mobile { + table { + overflow-x: scroll; + } + + table td { + padding: 5px; + } + + pre { + white-space: pre-wrap; + word-wrap: break-word; + } + + li { + margin-left: 25px; + } + + p, + h1, + h2, + h3 { + margin: 20px 0px; + } +} diff --git a/sass/defaults.scss b/sass/defaults.scss new file mode 100644 index 0000000..4e38a60 --- /dev/null +++ b/sass/defaults.scss @@ -0,0 +1,70 @@ +* { + padding: 0; + margin: 0; + //font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Roboto", + // "Segoe UI", Helvetica, Arial, sans-serif; + font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; + font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; +} + +a { + text-decoration: none; +} + +a:hover, button:hover { + cursor: pointer; +} + +a, +a:visited { + color: rgb(0, 86, 179); +} + +.base { + min-height: 100vh; + display: flex; + flex-direction: column; + width: 100%; +} + +.main__content-container { + display: flex; + flex-direction: column; + min-height: 100%; + justify-content: space-between; + flex: 2; +} + +p, +h1, +h2, +h3, +h4, +li, +ol, +ul { + color: #333; +} + +main { + width: 100%; +} + +blockquote { + border-left: 0.3em solid rgba(55, 55, 55, 0.4); + margin-bottom: 16px; + //padding-left: 20px; + padding: 0 1em; + color: #707070; + + p, + h1, + h2, + h3, + h4, + li, + ol, + ul { + color: inherit; + } +} diff --git a/sass/footer/main.scss b/sass/footer/main.scss new file mode 100644 index 0000000..ae94403 --- /dev/null +++ b/sass/footer/main.scss @@ -0,0 +1,79 @@ +@import "../components/_link"; + +footer { + display: block; + color: #333; + font-size: 0.7rem; + padding: 0; + margin: 0; +} + +.footer__container { + width: 100%; + padding: 0; + justify-content: space-between; + margin: auto; + display: flex; + flex-direction: row; + overflow: hidden; +} + +@mixin footer__column-base { + list-style: none; + display: flex; + margin: auto 50px; + align-items: center; + flex: 2.5; +} + +.footer__column { + @include footer__column-base; +} + +.footer__column--center { + @include footer__column-base; + margin: auto; + flex-direction: column; + align-items: center; + flex: 2; +} + +.footer__column:last-child { + justify-content: flex-end; + a { + margin: 10px; + } +} + +.footer__link-container { + margin: 5px; +} + +.footer__link { + text-decoration: none; +} + +.license__link { + display: inline; +} + +.license__link:hover { + @include a_hover; +} + +.footer__column-divider, +.footer__column-divider--mobile-visible, +.footer__column-divider--mobile-only { + font-weight: 500; + opacity: 0.7; + margin: 0 5px; +} + +.footer__column-divider--mobile-only { + display: none; +} + +.footer__icon { + margin: auto 5px; + height: 20px; +} diff --git a/sass/footer/mobile.scss b/sass/footer/mobile.scss new file mode 100644 index 0000000..f6e0c1f --- /dev/null +++ b/sass/footer/mobile.scss @@ -0,0 +1,52 @@ +$footer-font-size: 0.44rem; + +footer { + font-size: $footer-font-size; +} + +.footer__container { + display: grid; + grid-template-rows: repeat(3, 100%); + align-items: center; + margin: auto; + justify-content: center; +} + +.footer__link { + font-size: 0.5rem; +} + +.license__conatiner, +.license__link { + text-align: center; +} + +@mixin footer__column-base { + margin: 0 auto; + display: flex; + padding: 0; +} + +.footer__column:first-child { + grid-row-start: 3; + flex-direction: row; +} + +.footer__column:last-child { + grid-row-start: 2; +} + +.footer__column { + @include footer__column-base; + align-self: flex-end; +} + +.footer__column--center { + @include footer__column-base; + align-self: flex-start; +} + +.footer__column-divider--mobile-only { + margin: 0 3px; + font-size: 9.9px; +} diff --git a/sass/gitea-clinic/main.scss b/sass/gitea-clinic/main.scss new file mode 100644 index 0000000..11aeb82 --- /dev/null +++ b/sass/gitea-clinic/main.scss @@ -0,0 +1,32 @@ +.clinic__doctors-container { + display: flex; +} + +.doctor__profile_photo { + width: 100px; + height: 100px; + border-radius: 100px; +} + +.doctor__container { + background-color: #eee; + margin: 10px 30px; + padding: 10px; + height: 250px; + border-radius: 5px; + width: 30%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-around; +} + +.doctor__name { + text-align: center; + margin: 0 auto !important; +} +.doctor_rating-stars, +.doctor_rating-value { + margin: 0 auto !important; + text-align: center; +} diff --git a/sass/gitea-clinic/mobile.scss b/sass/gitea-clinic/mobile.scss new file mode 100644 index 0000000..09359fa --- /dev/null +++ b/sass/gitea-clinic/mobile.scss @@ -0,0 +1,10 @@ +.clinic__doctors-container { + display: flex; + flex-direction: column; + align-items: center; +} + + +.doctor__container { + width: 80%; +} diff --git a/sass/home/card-main.scss b/sass/home/card-main.scss new file mode 100644 index 0000000..5390558 --- /dev/null +++ b/sass/home/card-main.scss @@ -0,0 +1,31 @@ +.home-card__group { + display: flex; + //margin: 50px auto; + margin: 0px auto; + width: 80%; +} + +.home-card__conatiner { + background-color: #eee; + margin: 10px 30px; + padding: 10px; + border-radius: 5px; + width: 30%; +} + +.home-card__icon { + width: 100px; + height: 100px; + margin: auto; + border-radius: 100px; +} + +.home-card__title { + margin: auto; + text-align: center; +} + +.home-card__text { + font-size: 0.7rem; + text-align: center; +} diff --git a/sass/home/card-mobile.scss b/sass/home/card-mobile.scss new file mode 100644 index 0000000..45745bf --- /dev/null +++ b/sass/home/card-mobile.scss @@ -0,0 +1,12 @@ +.home-card__group { + flex-direction: column; +} + +.home-card__conatiner { + margin: 10px auto; + width: 80%; +} + +.home-card__group { + margin: auto; +} diff --git a/sass/home/main.scss b/sass/home/main.scss new file mode 100644 index 0000000..c345cba --- /dev/null +++ b/sass/home/main.scss @@ -0,0 +1,150 @@ +@import "./card-main"; +@import "./service-card-main"; +@import "./vision"; +@import "../components/fullscreen"; + +$heading-letter-spacing: 20px; +.index-banner__container { + width: 100%; + display: flex; + flex-direction: column; + //background-color: #d1875a; + // background-color: #3c3c3c; + // background-color: #58181f; + font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; + @include fullscreen; + flex-grow: 1; +} + +.index-banner { + margin: auto; + width: 80%; + display: flex; + // flex-direction: column; + justify-content: space-between; +} + +.index-banner__content-container { + // height: 300px; + li { + // color: white; + } +} +.index-banner__logo-container { + margin: center; + align-items: center; + display: flex; + width: 500px; +} + +.index-banner__title { + margin: auto; + font-style: none; + //color: #fff; +} + +.index-banner__tagline { + margin: auto; + // color: #fff; + // font-size: 1.4rem; +} + +.index-banner__title-container { + display: flex; +} + +.index-banner__logo { + width: 120px; + margin: auto; + border-radius: 20px; +} + +.index-banner__main-action-btn { + display: block; + display: block; + font-weight: 400; + padding: 15px; + border: none; + margin: 20px 0; + background-color: green; +} + +.index-banner__main-action-link { + color: white !important; +} + +.index-banner__main-action-btn:hover { + // background-color: lightgray; +} + +.index-banner__features-list { + margin: 20px; +} + +.index-banner__features { + margin: 10px 0; +} + +.home__features { + display: flex; + flex-direction: column; + align-items: center; +} + +.home__features-title { + margin: auto; +} + +$page-content-width: 80%; +.index__group-content { + .page__container { + width: $page-content-width; + @include fullscreen; + height: 90vh !important; + display: flex; + flex-direction: column; + justify-content: space-around; + } +} + +.action-call__container { + background: #1f5818; + width: 100%; + padding: 60px 0; +} + +.action-call__margin-container { + display: flex; + width: $page-content-width; + margin: auto; + align-items: center; + justify-content: space-around; +} + +.action-call__prompt { + color: white; + font-weight: 400; + font-size: 1.7rem; +} + +.action-call__button { + display: block; + display: block; + font-weight: 400; + padding: 15px; + border: none; + margin: 20px 0; + background-color: #fff; +} + +.action-call__button:hover { + background-color: lightgray; +} + +.action-call_link { + color: #000 !important; +} + +.action-call_link:hover { + text-decoration: none !important; +} diff --git a/sass/home/mobile.scss b/sass/home/mobile.scss new file mode 100644 index 0000000..5a14ed7 --- /dev/null +++ b/sass/home/mobile.scss @@ -0,0 +1,40 @@ +@import "./card-mobile"; +@import "./vision-mobile"; +@import "./service-card-mobile"; + +.home__container { + max-height: 100vh; + height: 100vh; +} + +.home__name { + font-size: 2rem; +} + +.index-banner { + margin: auto; +} + +.index-banner__title { + font-size: 2.5rem; + margin: auto; +} + +.index__group-content { + .page__container { + width: 90%; + } +} + +.index-banner__logo-container { + display: none; +} + +.action-call__margin-container { + flex-direction: column; + width: 85%; +} + +.action-call__prompt { + text-align: center; +} diff --git a/sass/home/service-card-main.scss b/sass/home/service-card-main.scss new file mode 100644 index 0000000..998703e --- /dev/null +++ b/sass/home/service-card-main.scss @@ -0,0 +1,107 @@ +@import "../components/fullscreen"; + +.service__features { + margin: 20px 0px; + @include fullscreen; + display: flex; + flex-direction: column; + justify-content: space-between; +} +.service__features--split { + margin: 20px 0px; + @include fullscreen; + display: flex; + flex-direction: column; + justify-content: space-between; + max-height: 1300px; +} + +.service-card__group { + margin: 0px auto; +} + +.service-card__conatiner { + // background-color: #eee; + margin: 10px 0px; + // wpadding: 10px; + border-radius: 5px; + display: flex; + // height: 250px; + // border-top: 1px solid #cacaca; + width: 80%; + margin: 0 auto; +} + +.line-border { + width: 80%; + display: block; + border-bottom: 1px solid #cacaca; + margin: auto; +} + +.service-card__conatiner:last-child { + // border-top: none; +} + +.service-card__icon { + width: 100px; + height: 100px; + margin: auto; + flex: 2; + border-radius: 100px; +} + +.service-card__service-name { + color: rgb(0, 128, 0); + font-weight: 600; +} + +.service-card__title { + margin: auto; + //text-align: center; +} + +.service-card__text { + // font-size: 0.7rem; + // text-align: center; + margin-bottom: 30px !important; +} + +.service-card__text-container { + flex: 2; + margin: auto !important; +} + +.service-card__aciton-btn { + margin: auto 0; + padding: 10px; + display: block; + font-weight: 400; + border: none; + background-color: #000; +} + +.service__features { + display: flex; + flex-direction: column; + align-items: center; +} + +.service__features-title { + margin: 10px auto !important; +} + +.service-card__icon-container { + width: 30%; + margin: auto; +} + +.service-card__aciton-btn--inactive { + margin: auto; + padding: 10px; + display: block; + font-weight: 400; + border: none; + background-color: lightgrey; + color: #000; +} diff --git a/sass/home/service-card-mobile.scss b/sass/home/service-card-mobile.scss new file mode 100644 index 0000000..c283fd0 --- /dev/null +++ b/sass/home/service-card-mobile.scss @@ -0,0 +1,17 @@ +.service-card__conatiner { + width: 85%; + flex-direction: column-reverse; + margin: 50px auto; +} + +.service__features--split, +.service__features { + height: auto !important; + min-height: auto !important; + max-height: none !important; + flex-direction: column; +} + +.line-border { + width: 95%; +} diff --git a/sass/home/vision-mobile.scss b/sass/home/vision-mobile.scss new file mode 100644 index 0000000..fdbe60e --- /dev/null +++ b/sass/home/vision-mobile.scss @@ -0,0 +1,6 @@ +.home__vision-container { + flex-direction: column; + height: auto !important; + min-height: auto !important; + max-height: auto !important; +} diff --git a/sass/home/vision.scss b/sass/home/vision.scss new file mode 100644 index 0000000..91e1140 --- /dev/null +++ b/sass/home/vision.scss @@ -0,0 +1,55 @@ +@import "../components/fullscreen"; + +.home__vision-container { + display: flex; + align-items: center; + height: 200px; + justify-content: space-between; +} + +.home__vision-text-line { + font-size: 0.8rem; + font-style: italic; +} + +.home__vision-intro-title { + text-align: center; +} + +.home__vision-intro-tagline { + font-size: 0.9rem; + margin: auto; + display: block; + text-align: center; +} + +.home__vision-aciton-btn { + display: block; + font-weight: 400; + margin: 20px auto; + padding: 15px; + border: none; + background-color: black; + color: #fff; +} + +.home__vision-aciton-btn:hover { + background-color: lightgray; +} + +.home__vision-action-link { + color: white !important; +} + +.page__container--split { + width: 50%; + margin: auto; + padding: 50px 0; + width: 80%; + @include fullscreen; + max-height: 1300px; + height: 90vh !important; + display: flex; + flex-direction: column; + justify-content: space-around; +} diff --git a/sass/main.scss b/sass/main.scss new file mode 100644 index 0000000..cb03f24 --- /dev/null +++ b/sass/main.scss @@ -0,0 +1,16 @@ +@import "./defaults"; +@import "./home/main"; +@import "./nav/main"; +@import "./footer/main"; +@import "./page/main"; +@import "./blog/main"; +@import "./tag/main"; +@import "./gitea-clinic/main"; + +.zola-anchor { + margin-left: 5px; +} + +.anchor-icon { + color: inherit !important; +} diff --git a/sass/mobile.scss b/sass/mobile.scss new file mode 100644 index 0000000..88473fe --- /dev/null +++ b/sass/mobile.scss @@ -0,0 +1,11 @@ +@import "./home/mobile"; +@import "./nav/mobile"; +@import "./footer/mobile"; +@import "./page/mobile"; +@import "./blog/mobile"; +@import "./tag/mobile"; +@import "./gitea-clinic/mobile.scss"; + +header { + height: auto; +} diff --git a/sass/nav/main.scss b/sass/nav/main.scss new file mode 100644 index 0000000..19aaa3e --- /dev/null +++ b/sass/nav/main.scss @@ -0,0 +1,112 @@ +@import "../components/_link"; + +header { + z-index: 5; + position: sticky; + top: 0; + background-color: #fff; +} + +.nav__container { + display: flex; + flex-direction: row; + + box-sizing: border-box; + width: 100%; + padding-top: 5px; + border-bottom: 1px solid rgb(211, 211, 211); +} + +.nav__home-btn { + font-weight: bold; + // font-family: monospace, monospace; + margin: auto; + margin-left: 10px; +} + +.nav__hamburger-menu { + display: none; +} + +.nav__spacer--small { + width: 100px; + margin: auto; +} + +.nav__spacer { + flex: 4; + margin: auto; +} + +.nav__logo-container { + display: inline-flex; + text-decoration: none; +} + +.nav__logo-container:hover { + @include a_hover; +} + +.nav__toggle { + display: none; +} + +.nav__logo { + display: inline-flex; + margin: auto; + padding: 5px; + width: 40px; +} + +@mixin nav__link-group { + flex: 1.5; + list-style: none; + display: flex; + flex-direction: row; + align-items: center; + align-self: center; + margin: auto; + text-align: center; +} + +.nav__link-group { + @include nav__link-group; + +} + +.nav__link-group--small { + @include nav__link-group; + flex: 0.5; + margin-right: 10px; +} + +@mixin nav__link-container { + display: flex; + padding: 10px; + height: 100%; + margin: auto; +} + +.nav__link-container { + @include nav__link-container; +} + +.nav__link-container--action { + @include nav__link-container; + background-color: green; + padding: 15px; + .nav__link { + color: white !important; + } +} + +.nav__link { + text-decoration: none; + color: black !important; + font-weight: 600; + font-size: 14px; +} + +.nav__link:hover { + @include a_hover; +} diff --git a/sass/nav/mobile.scss b/sass/nav/mobile.scss new file mode 100644 index 0000000..2f9040c --- /dev/null +++ b/sass/nav/mobile.scss @@ -0,0 +1,141 @@ +//@import '../_vars'; + +$hamburger-menu-animation: 0.4s ease-out; +$nav__hamburger-inner-height: 1.3px; + +.nav__container { + flex-direction: column; +} + +.nav__header { + display: flex; + flex-direction: row; + min-width: 100%; + justify-content: space-between; +} + +.nav__link-group, +.nav__link-group--small { + position: sticky; + flex-direction: column; + margin: auto; + align-items: center; + width: 100%; + // background-color: $light-blue; +} + +.nav__link-container--action { + background-color: #fff; + .nav__link { + color: #000 !important; + } +} + +@mixin nav__link-container { + border-bottom: 1px dashed rgba(55, 55, 55, 0.4); + width: 70%; +} + +.nav__link-container { + @include nav__link-container; +} + +.nav__link-container--action { + @include nav__link-container; +} + +.nav__link-container:last-child { + border-bottom: none; +} + +.nav__link { + margin: auto; +} + +.nav__hamburger-menu { + display: inline-block; + width: 50px; + height: 50px; +} + +.nav__spacer { + display: none; +} + +.nav__link-group { + margin-right: auto; +} + +.nav__toggle:not(:checked) ~ .nav__link-group, .nav__link-group--small { + max-height: 0; + transition: max-height $hamburger-menu-animation; + overflow: hidden; +} + +.nav__toggle:checked ~ .nav__link-group, .nav__toggle:checked ~ .nav__link-group--small { + max-height: 500px; + transition: max-height $hamburger-menu-animation; +} + +.nav__toggle:checked ~ .nav__header { + .nav__hamburger-inner::after { + width: 24px; + bottom: $nav__hamburger-inner-height; + transform: rotate(-90deg); + transition: bottom 0.1s ease-out, + transform 0.22s cubic-bezier(0.215, 0.61, 0.355, 1) 0.12s, + width 0.1s ease-out; + } + + .nav__hamburger-inner::before { + top: 0; + opacity: 0; + transition: top 0.1s ease-out, opacity 0.1s ease-out 0.12s; + } + + .nav__hamburger-inner { + transform: rotate(225deg); + transition-delay: 0.12s; + transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } +} + +.nav__hamburger-inner::after { + bottom: -7px; + transition: bottom 0.1s ease-in 0.25s, + transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), + width 0.1s ease-in 0.25s; +} + +.nav__hamburger-inner::after, +.nav__hamburger-inner::before { + content: ""; + display: block; +} + +.nav__hamburger-inner::before { + top: -7px; + transition: top 0.1s ease-in 0.25s, opacity 0.1s ease-in; +} + +.nav__hamburger-inner { + top: 50%; + margin: auto; + transition-duration: 0.22s; + transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); +} + +.nav__hamburger-inner, +.nav__hamburger-inner::after, +.nav__hamburger-inner::before { + width: 24px; + height: $nav__hamburger-inner-height; + position: relative; + // background: $dark-black; + background: #000; +} + +.nav__hamburger-menu, +.nav__hamburger-inner { + display: block; +} diff --git a/sass/page/main.scss b/sass/page/main.scss new file mode 100644 index 0000000..db3b08a --- /dev/null +++ b/sass/page/main.scss @@ -0,0 +1,38 @@ +@import "../components/_page.scss"; +@import "../components/_link.scss"; + +.page__container { + width: 50%; + margin: auto; + padding: 50px 0; +} + +.page__group { + display: flex; + flex-direction: column; +} + +.page__group-title { + margin: 20px auto; +} + +.page__group-content { + display: flex; + flex-direction: column; +} + +.page__group-content { + @include md; +} + +.page__preview-banner { + width: 10%; + height: #{"min(250px, 50vh)"}; + margin: 20px auto; +} + +.page__banner { + width: 100%; + height: #{"max(450px, 50vh)"}; + margin: 20px auto; +} diff --git a/sass/page/mobile.scss b/sass/page/mobile.scss new file mode 100644 index 0000000..926d65e --- /dev/null +++ b/sass/page/mobile.scss @@ -0,0 +1,27 @@ +@import '../components/_page.scss'; + +.page__container { + width: 85%; +} + +.page__group-content { + @include md_mobile; +} + +.page__banner { + height: auto; +} + +.page__group-title { + margin: auto; + margin-top: 0px; + margin-bottom: 10px; +} + + +.page__container--split { + width: 85%; + height: auto !important; + min-height: auto !important; + max-height: none !important; +} diff --git a/sass/tag/main.scss b/sass/tag/main.scss new file mode 100644 index 0000000..2fb2d8f --- /dev/null +++ b/sass/tag/main.scss @@ -0,0 +1,50 @@ +@import "../components/page"; + +$std-trans: 0.3s; + +.tag__item-link, +.tag__item-link:visited { + text-decoration: none; +} + +.tag__item-link { + display: flex; + align-items: start; + flex-direction: column; + flex: 2; +} + +.tag__item { + border-bottom: 1px dashed #333; + margin: 10px; + display: flex; + justify-content: space-between; + padding: 5px; +} + +.tag__item-title { + font-size: 1.4rem; +} + +.tag__meta { + font-size: 0.7rem; +} + +.tag__rss-link { + margin: auto 20px; +} + +.tag__title { + display: inline; + flex: 2; +} + +.tag__title-container { + margin: 35px 0; + display: flex; +} + + +.tag__rss-link--single { + margin: auto; +} diff --git a/sass/tag/mobile.scss b/sass/tag/mobile.scss new file mode 100644 index 0000000..1693272 --- /dev/null +++ b/sass/tag/mobile.scss @@ -0,0 +1,8 @@ +.tag__title-container { + flex-direction: column; +} + + +.tag__rss-link--icon { + margin: auto 0px; +} diff --git a/static/android-icon-144x144.png b/static/android-icon-144x144.png new file mode 100644 index 0000000..61580a5 Binary files /dev/null and b/static/android-icon-144x144.png differ diff --git a/static/android-icon-192x192.png b/static/android-icon-192x192.png new file mode 100644 index 0000000..9d32eee Binary files /dev/null and b/static/android-icon-192x192.png differ diff --git a/static/android-icon-36x36.png b/static/android-icon-36x36.png new file mode 100644 index 0000000..1616405 Binary files /dev/null and b/static/android-icon-36x36.png differ diff --git a/static/android-icon-48x48.png b/static/android-icon-48x48.png new file mode 100644 index 0000000..f646046 Binary files /dev/null and b/static/android-icon-48x48.png differ diff --git a/static/android-icon-72x72.png b/static/android-icon-72x72.png new file mode 100644 index 0000000..27b7809 Binary files /dev/null and b/static/android-icon-72x72.png differ diff --git a/static/android-icon-96x96.png b/static/android-icon-96x96.png new file mode 100644 index 0000000..4edad2e Binary files /dev/null and b/static/android-icon-96x96.png differ diff --git a/static/apple-icon-114x114.png b/static/apple-icon-114x114.png new file mode 100644 index 0000000..6112df8 Binary files /dev/null and b/static/apple-icon-114x114.png differ diff --git a/static/apple-icon-120x120.png b/static/apple-icon-120x120.png new file mode 100644 index 0000000..b72d259 Binary files /dev/null and b/static/apple-icon-120x120.png differ diff --git a/static/apple-icon-144x144.png b/static/apple-icon-144x144.png new file mode 100644 index 0000000..61580a5 Binary files /dev/null and b/static/apple-icon-144x144.png differ diff --git a/static/apple-icon-152x152.png b/static/apple-icon-152x152.png new file mode 100644 index 0000000..aee468d Binary files /dev/null and b/static/apple-icon-152x152.png differ diff --git a/static/apple-icon-180x180.png b/static/apple-icon-180x180.png new file mode 100644 index 0000000..e0c6ac9 Binary files /dev/null and b/static/apple-icon-180x180.png differ diff --git a/static/apple-icon-57x57.png b/static/apple-icon-57x57.png new file mode 100644 index 0000000..b0cf48a Binary files /dev/null and b/static/apple-icon-57x57.png differ diff --git a/static/apple-icon-60x60.png b/static/apple-icon-60x60.png new file mode 100644 index 0000000..12f22cc Binary files /dev/null and b/static/apple-icon-60x60.png differ diff --git a/static/apple-icon-72x72.png b/static/apple-icon-72x72.png new file mode 100644 index 0000000..27b7809 Binary files /dev/null and b/static/apple-icon-72x72.png differ diff --git a/static/apple-icon-76x76.png b/static/apple-icon-76x76.png new file mode 100644 index 0000000..29f8aec Binary files /dev/null and b/static/apple-icon-76x76.png differ diff --git a/static/apple-icon-precomposed.png b/static/apple-icon-precomposed.png new file mode 100644 index 0000000..ac014fd Binary files /dev/null and b/static/apple-icon-precomposed.png differ diff --git a/static/apple-icon.png b/static/apple-icon.png new file mode 100644 index 0000000..ac014fd Binary files /dev/null and b/static/apple-icon.png differ diff --git a/static/browserconfig.xml b/static/browserconfig.xml new file mode 100644 index 0000000..c554148 --- /dev/null +++ b/static/browserconfig.xml @@ -0,0 +1,2 @@ + +#ffffff \ No newline at end of file diff --git a/static/d49ea10ffc8cc3fcf59c4b3733295a5c.ico.zip b/static/d49ea10ffc8cc3fcf59c4b3733295a5c.ico.zip new file mode 100644 index 0000000..c4ef44f Binary files /dev/null and b/static/d49ea10ffc8cc3fcf59c4b3733295a5c.ico.zip differ diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png new file mode 100644 index 0000000..42628b6 Binary files /dev/null and b/static/favicon-16x16.png differ diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png new file mode 100644 index 0000000..33ed42b Binary files /dev/null and b/static/favicon-32x32.png differ diff --git a/static/favicon-96x96.png b/static/favicon-96x96.png new file mode 100644 index 0000000..4edad2e Binary files /dev/null and b/static/favicon-96x96.png differ diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000..2131e83 Binary files /dev/null and b/static/favicon.ico differ diff --git a/static/icons/email.svg b/static/icons/email.svg new file mode 100644 index 0000000..93694ff --- /dev/null +++ b/static/icons/email.svg @@ -0,0 +1 @@ + diff --git a/static/icons/file-text.svg b/static/icons/file-text.svg new file mode 100644 index 0000000..4197ddd --- /dev/null +++ b/static/icons/file-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/github.svg b/static/icons/github.svg new file mode 100644 index 0000000..a1c5967 --- /dev/null +++ b/static/icons/github.svg @@ -0,0 +1 @@ + diff --git a/static/icons/matrix.svg b/static/icons/matrix.svg new file mode 100644 index 0000000..f37073d --- /dev/null +++ b/static/icons/matrix.svg @@ -0,0 +1 @@ + diff --git a/static/icons/rss.svg b/static/icons/rss.svg new file mode 100644 index 0000000..c9a1368 --- /dev/null +++ b/static/icons/rss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/manifest.json b/static/manifest.json new file mode 100644 index 0000000..013d4a6 --- /dev/null +++ b/static/manifest.json @@ -0,0 +1,41 @@ +{ + "name": "App", + "icons": [ + { + "src": "\/android-icon-36x36.png", + "sizes": "36x36", + "type": "image\/png", + "density": "0.75" + }, + { + "src": "\/android-icon-48x48.png", + "sizes": "48x48", + "type": "image\/png", + "density": "1.0" + }, + { + "src": "\/android-icon-72x72.png", + "sizes": "72x72", + "type": "image\/png", + "density": "1.5" + }, + { + "src": "\/android-icon-96x96.png", + "sizes": "96x96", + "type": "image\/png", + "density": "2.0" + }, + { + "src": "\/android-icon-144x144.png", + "sizes": "144x144", + "type": "image\/png", + "density": "3.0" + }, + { + "src": "\/android-icon-192x192.png", + "sizes": "192x192", + "type": "image\/png", + "density": "4.0" + } + ] +} \ No newline at end of file diff --git a/static/ms-icon-144x144.png b/static/ms-icon-144x144.png new file mode 100644 index 0000000..61580a5 Binary files /dev/null and b/static/ms-icon-144x144.png differ diff --git a/static/ms-icon-150x150.png b/static/ms-icon-150x150.png new file mode 100644 index 0000000..bd4a581 Binary files /dev/null and b/static/ms-icon-150x150.png differ diff --git a/static/ms-icon-310x310.png b/static/ms-icon-310x310.png new file mode 100644 index 0000000..47d18d9 Binary files /dev/null and b/static/ms-icon-310x310.png differ diff --git a/static/ms-icon-70x70.png b/static/ms-icon-70x70.png new file mode 100644 index 0000000..c1a13fe Binary files /dev/null and b/static/ms-icon-70x70.png differ diff --git a/static/people/dachary.png b/static/people/dachary.png new file mode 100644 index 0000000..29e196c Binary files /dev/null and b/static/people/dachary.png differ diff --git a/static/people/easter-eggs.png b/static/people/easter-eggs.png new file mode 100644 index 0000000..0a7d68f Binary files /dev/null and b/static/people/easter-eggs.png differ diff --git a/static/people/realaravinth.jpg b/static/people/realaravinth.jpg new file mode 100644 index 0000000..1163a9d Binary files /dev/null and b/static/people/realaravinth.jpg differ diff --git a/static/tmp-logo.png b/static/tmp-logo.png new file mode 100644 index 0000000..c683d07 Binary files /dev/null and b/static/tmp-logo.png differ diff --git a/templates/anchor-link.html b/templates/anchor-link.html new file mode 100644 index 0000000..23bd6f7 --- /dev/null +++ b/templates/anchor-link.html @@ -0,0 +1,3 @@ +# diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..3344410 --- /dev/null +++ b/templates/base.html @@ -0,0 +1,37 @@ +{% import "macros.html" as macros %} + + + + + + + + + + + + + + + + + {% block meta %} {% endblock %} + + +
+ {% include "nav.html" %} +
+ +
+
+ {% block content %} {% endblock %} +
+ {% include "footer.html" %} +
+ + diff --git a/templates/blog/_meta.html b/templates/blog/_meta.html new file mode 100644 index 0000000..a91eb76 --- /dev/null +++ b/templates/blog/_meta.html @@ -0,0 +1,4 @@ +

+ {{ macros::get_author(nick=page.extra.author) }} · {{ page.day }} {{ macros::get_month(month=page.month) }}, + {{ page.year }} · {{ page.reading_time }} min read +

diff --git a/templates/blog/index.html b/templates/blog/index.html new file mode 100644 index 0000000..97b1c55 --- /dev/null +++ b/templates/blog/index.html @@ -0,0 +1,33 @@ +{% extends "base.html" %} {% block meta %} {% set title = "Posts" %} {% set +description = "The LibrePages Blog: we write about static-sites deployment, Free Software and the +general development ecosystem" %} {{ macros::get_meta_tags(title=title, +description=description) }} {% endblock meta %} {% block content %} +
+

{{ section.title }}

+ + + +
+{% block rss %} {% endblock %} {% +endblock content %} diff --git a/templates/blog/post.html b/templates/blog/post.html new file mode 100644 index 0000000..35c46dc --- /dev/null +++ b/templates/blog/post.html @@ -0,0 +1,21 @@ +{% extends "base.html" %} {% block meta %} {% set description = page.description +%} {{ macros::get_meta_tags(title=page.title, description=description) }} {% +endblock meta %} {% block content %} + +
+

{{ page.title }}

+ {% include "blog/_meta.html" %} + +
+ {{ page.content | safe }} +
+
+
+ +
+ +{% endblock content %} diff --git a/templates/foo.html b/templates/foo.html new file mode 100644 index 0000000..c9e8a63 --- /dev/null +++ b/templates/foo.html @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + diff --git a/templates/footer.html b/templates/footer.html new file mode 100644 index 0000000..d4ada45 --- /dev/null +++ b/templates/footer.html @@ -0,0 +1,50 @@ + diff --git a/templates/home/components/_banner-new.html b/templates/home/components/_banner-new.html new file mode 100644 index 0000000..19068b7 --- /dev/null +++ b/templates/home/components/_banner-new.html @@ -0,0 +1,50 @@ +
+
+
+

Easiest way to deploy websites

+

+ JAMstack platform with focus on privacy and speed +

+
    +
  • + Seamless Git Integration making migration easy +
  • +
  • + Pull Request Previews to verify changes before deployment +
  • +
  • + Server-less form submissions to collect data from visitors +
  • +
  • + Global CDN for high-speed access from across the world +
  • +
  • + + 100% + Free Software : deploy your own instance +
  • +
  • + 25% of the income dedicated to sustain Free Software dependencies +
  • +
+ +
+ +
+ +
+
+
diff --git a/templates/home/components/home-card-new.html b/templates/home/components/home-card-new.html new file mode 100644 index 0000000..1e27f20 --- /dev/null +++ b/templates/home/components/home-card-new.html @@ -0,0 +1,28 @@ +{% macro home_card2(title, description, action_link=false, template=false) %} +
+
+

{{ title }}

+

{{ description }}

+ {% if action_link %} + + {% else %} + + {% endif %} +
+ +
+ Temporary card icon +
+ + + {% if template %} +