diff --git a/contents/[home]/assets/testimonials/daniel.jpeg b/contents/[home]/assets/testimonials/daniel.jpeg
new file mode 100644
index 0000000..98c280c
Binary files /dev/null and b/contents/[home]/assets/testimonials/daniel.jpeg differ
diff --git a/contents/[home]/assets/testimonials/joannis.jpeg b/contents/[home]/assets/testimonials/joannis.jpeg
new file mode 100644
index 0000000..86e0ce8
Binary files /dev/null and b/contents/[home]/assets/testimonials/joannis.jpeg differ
diff --git a/contents/[home]/assets/testimonials/sebastien.jpeg b/contents/[home]/assets/testimonials/sebastien.jpeg
new file mode 100644
index 0000000..90d5ef1
Binary files /dev/null and b/contents/[home]/assets/testimonials/sebastien.jpeg differ
diff --git a/contents/[home]/index.md b/contents/[home]/index.md
deleted file mode 100644
index 725aef6..0000000
--- a/contents/[home]/index.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-#title: ""
-description: ""
-views:
- html: pages.home
----
-
-# Learn To Code Using Swift
\ No newline at end of file
diff --git a/contents/[home]/index.yml b/contents/[home]/index.yml
new file mode 100644
index 0000000..d537e4e
--- /dev/null
+++ b/contents/[home]/index.yml
@@ -0,0 +1,315 @@
+#title: ""
+description: "A programming guide for absolute beginners that introduces the Swift language with a fresh approach, offering simple explanations even for complex topics."
+views:
+ html: pages.home
+
+hero:
+ title: "Learn To Code Using Swift"
+ subtitle: "The absolute beginner's programming book"
+ buttons:
+ primary:
+ label: "Get the book for $49"
+ url: "https://theswiftdev.gumroad.com/l/learn-to-code-using-swift"
+ secondary:
+ label: "Download sample"
+ url: "https://theswiftdev.com/assets/learn-to-code-using-swift/sample.pdf"
+ features:
+ - label: "14(+2) chapters"
+ icon: "Chapters"
+ - label: "700+ pages"
+ icon: "Pages"
+ - label: "350+ exercises"
+ icon: "Exercises"
+
+highlights:
+ caption: "Summary"
+ title: "Why you'll love this book"
+ sections:
+ - title: null
+ description: null
+ - title: "Beginner friendly"
+ description: "No experience? No problem. This book is made for absolute beginners — no coding background needed, just curiosity and the desire to learn."
+ - title: "Foundational"
+ description: "Learn to code from the ground up. You won’t just follow tutorials — we’ll help you truly understand how programming works, step by step. You’ll learn to think algorithmically and code efficiently."
+ - title: null
+ description: null
+ - title: "Practical"
+ description: "Learning by doing. Packed with 350+ hands-on exercises so you can apply what you learn and build confidence through practice."
+ - title: "Fresh – and will be"
+ description: "Always up-to-date and future-proof. Built for today’s Swift with free updates included, so you can stay current as the language evolves."
+
+
+beta:
+ caption: "Now available in beta"
+ title: "Learn to code with rock solid foundations"
+
+ list:
+ - title: "Learn Swift on any computer"
+ description: "Teaching you the Swift language itself – so you can start coding on Windows, Linux or any laptop you already own"
+ - title: "Practice and theory hand in hand"
+ description: "Gain confidence and hands-on experience by hundreds of exercises and mini projects"
+ - title: "Teaches essential skills in the age of LLMs"
+ description: "Be strong with algorithmical thinking and reasoning skills. Don't be misguided by AI, leverage it for your needs as an expert"
+ buttons:
+ primary:
+ label: "Get the book for $49"
+ url: "https://theswiftdev.gumroad.com/l/learn-to-code-using-swift"
+ secondary:
+ label: "Download sample"
+ url: "https://theswiftdev.com/assets/learn-to-code-using-swift/sample.pdf"
+
+testimonials:
+ caption: "Testimonials"
+ title: "Whatreaderssay about it"
+ quotes:
+ - quote: "Whether you're learning Swift or you're seasoned developer, there is something to learn in this book. Tibor and Kitti made an excellent work of gathering pretty much all aspects of the Swift programming language, following the principle of progressive disclosure: you learn only what you need when you need it. The exercises at the end of each chapter oblige you to dive deeper and verify you effectively acquired the concepts presented."
+ name: "Sébastien Stormacq"
+ info: "Developer Experience, AWS"
+ image: "sebastien"
+ - quote: "I thought programming was too complicated for me, but this course completely changed my attitude. It starts from the basics, explains clearly in every chapter, and builds real knowledge along the way. Now I’m no longer afraid of code—I’m excited to see what else I’ll learn."
+ name: "Dániel Horváth"
+ info: "Aspiring Swift developer"
+ image: "daniel"
+
+
+authors:
+ caption: "Authors"
+ title: "Meet the authors"
+ subtitle: "Tibor Bödecs & Kitti Bödecs"
+ tibor: "Tibor is a seasoned software developer who has been crafting quality software for decades. He became fascinated by Swift years ago — today, he runs a company built around it, is a member of the Server-Side Swift Workgroup, and writes extensively about the language, whether in books or blogs."
+ kitti: "Kitti studied Sociology and she is a UX researcher and designer. After spending the past few years in a software development company led by engineers and developers, she discovered that she genuinely enjoys diving into technical topics. With her background in bridging the gap between technology and people while breaking down complexity, the idea was born: learning programming shouldn’t feel overwhelming for anyone."
+ summary: "The outcome is this book that offers a reliable, accessible approach to learning Swift, while preserving full technical depth and accuracy."
+
+outline:
+ caption: "Content"
+ title: "What's inside the book"
+
+ chapters:
+ - number: "00"
+ title: "Getting started"
+ description: "This chapter introduces the fundamentals needed to begin programming with Swift. It covers the basics of programming concepts, an overview of the Swift language, and how to use the command line. It also explains Integrated Development Environments (IDEs) and how to choose and set up your development environment."
+ lessons:
+ - title: "Introduction"
+ - title: "Command line"
+ - title: "Swift"
+ - title: "Programming"
+ - title: "IDE"
+ - number: "01"
+ title: "The basics"
+ description: "This chapter covers the core building blocks of Swift programming. It explains how to use the print function, write comments, and define constants and variables. It introduces Swift’s standard data types and demonstrates common string operations, including string interpolation."
+ lessons:
+ - title: "The print function"
+ - title: "Comments"
+ - title: "Constants & variables"
+ - title: "Standard types"
+ - title: "String operations"
+ - number: "02"
+ title: "Operators"
+ description: "This chapter provides a detailed overview of Swift’s operators and how they are used in programming. It covers the assignment operator, arithmetic operators, and the remainder operator. It explains comparison and logical operators, as well as how to combine operators to create more complex expressions."
+ lessons:
+ - title: "Assignment operator"
+ - title: "Arithmetic operators"
+ - title: "Remainder operator"
+ - title: "Comparison operators"
+ - title: "Logical operators"
+ - title: "Combining operators"
+ - number: "03"
+ title: "Optionals"
+ description: "This chapter introduces optionals and their role in handling situations where data may be missing or invalid. It explains how to read user input with the readLine function and why the returned value is optional. It covers the nil value, working safely with optionals, and writing programs that respond appropriately to user input."
+ lessons:
+ - title: "The nil value"
+ - title: "The readLine function"
+ - number: "04"
+ title: "Data types"
+ description: "This chapter explores Swift’s data types beyond the basic single-value types. It covers ranges, arrays, sets, and dictionaries, explaining how and when to use each. It also introduces specialized types such as UInt, Float, and Character for more precise data control."
+ lessons:
+ - title: "Ranges"
+ - title: "Arrays"
+ - title: "Sets"
+ - title: "Dictionaries"
+ - title: "Other types"
+ - number: "05"
+ title: "Control flow"
+ description: "This chapter explains how to use control flow to make decisions and repeat actions in Swift programs. It covers conditional statements (if-else and switch-case), looping structures (while, repeat-while, and for-in), and the concept of variable scope. It also introduces nested statements for more complex logic."
+ lessons:
+ - title: "If-else"
+ - title: "Switch-case"
+ - title: "While"
+ - title: "Repeat-while"
+ - title: "For-in"
+ - title: "Scopes"
+ - title: "Nested statements"
+ - number: "06"
+ title: "Functions"
+ description: "This chapter introduces functions as a way to organize and reuse code in Swift. It covers defining and calling functions, working with parameters and return values, and understanding function types. It also explains closures and higher-order functions for more advanced use cases."
+ lessons:
+ - title: "Basics"
+ - title: "Parameters"
+ - title: "Return types"
+ - title: "Closures"
+ - title: "Higher-order functions"
+ - number: "07"
+ title: "Structs"
+ description: "This chapter introduces structs as a way to create custom data types in Swift. It explains how to define structs, create and use instances, and add properties to store data. It also covers writing methods to give structs behavior and shows how they can help organize code."
+ lessons:
+ - title: "Basics"
+ - title: "Initialization"
+ - title: "Properties"
+ - title: "Methods"
+ - number: "08"
+ title: "Enums"
+ description: "This chapter explains how to use enums to define types with a limited set of possible values. It covers basic enum syntax, adding associated values, and using raw values. It also shows how to add methods and properties to enums and use pattern matching for more expressive logic."
+ lessons:
+ - title: "Basics"
+ - title: "Case values"
+ - title: "Methods and properties"
+ - title: "Pattern matching"
+ - number: "09"
+ title: "Error handling"
+ description: "This chapter introduces Swift’s error handling system and how to model errors using structs and enums. It covers writing functions that can throw errors and handling them with do, try, and catch. The chapter also explains using guard-else, the Result type, and runtime checks to write safer, more reliable code."
+ lessons:
+ - title: "Error types"
+ - title: "Do-catch"
+ - title: "Throwing functions"
+ - title: "Guard-else"
+ - title: "The Result type"
+ - title: "Runtime checks"
+ - number: "10"
+ title: "Packages"
+ description: "This chapter covers how to organize and manage Swift code using packages and package managers. It explains creating executables and libraries, managing access control, and writing tests. It also introduces version control, handling dependencies, and essential tools for real-world project development."
+ lessons:
+ - title: "Basics"
+ - title: "Executables"
+ - title: "Access control"
+ - title: "Libraries"
+ - title: "Tests"
+ - title: "Version control"
+ - title: "Dependencies"
+ - title: "Tools"
+ - number: "11"
+ title: "Protocols"
+ description: "This chapter introduces protocols as a way to define shared capabilities that different types can adopt. It covers how to define protocols, make types conform to them, and write flexible, reusable code based on behavior rather than concrete types. The chapter also explores protocol inheritance, extensions, associated types, and built-in protocols."
+ lessons:
+ - title: "Basics"
+ - title: "Extensions"
+ - title: "Inheritance"
+ - title: "Associated types"
+ - title: "Built in protocols"
+ - number: "12"
+ title: "Generics"
+ description: "This chapter explains how to use generics to write flexible, reusable, and type-safe code. It covers creating generic functions, types, and protocols, allowing your code to work with different data types without duplication. The chapter also introduces variadic generics for advanced use cases."
+ lessons:
+ - title: "Functions"
+ - title: "Types"
+ - title: "Protocols"
+ - title: "Variadics"
+ - number: "13"
+ title: "Classes"
+ description: "This chapter focuses on classes — reference types that let multiple variables share and modify the same instance, making them a core tool for modeling shared state. It also explores related object-oriented programming features like inheritance and polymorphism, while also introducing considerations around memory management such as reference counting and potential retain cycles."
+ lessons:
+ - title: "Basics"
+ - title: "OOP"
+ - title: "Memory management"
+ - number: "14"
+ title: "Ownership"
+ description: "This chapter explores Swift’s ownership model, explaining how memory is managed and how value ownership affects mutation and access. It covers concepts like non-copyable types, ownership modifiers, and working with unsafe memory."
+ lessons:
+ - title: "Basics"
+ - title: "Non-Copyable"
+ - title: "Modifiers"
+ - title: "Unsafe memory"
+ - number: "15"
+ title: "Concurrency"
+ description: "This chapter introduces concurrency in Swift, covering the fundamentals of asynchronous programming. It explains how to use async-await, manage tasks, and ensure safe data access with actors and the Sendable protocol. The chapter also covers asynchronous sequences."
+ lessons:
+ - title: "Basics"
+ - title: "Async-await"
+ - title: "Tasks"
+ - title: "Sendable"
+ - title: "Actors"
+ - title: "Sequences"
+ - number: "16"
+ title: "Attributes"
+ description: "This chapter covers advanced Swift features that enhance code expressiveness and performance. It introduces attributes, property wrappers, and key paths to write cleaner and more powerful code. It also explores modern concepts like result builders, macros, and other more advanced attributes."
+ lessons:
+ - title: "Result builders"
+ - title: "Macros"
+ - title: "Others"
+
+
+callout:
+ title: "Make your first step to programming for the early-bird price now"
+ subtitle: "Clear explanations and step-by-step progress"
+ buttons:
+ primary:
+ label: "Get the book for $49"
+ url: "https://theswiftdev.gumroad.com/l/learn-to-code-using-swift"
+ secondary:
+ label: "Download sample"
+ url: "https://theswiftdev.com/assets/learn-to-code-using-swift/sample.pdf"
+ note: "14 day money-back guarantee"
+
+faq:
+ title: "Questions? Look here."
+ items:
+ - question: "Is this book only for people who want to build iOS apps?"
+ answer: "Not at all! While Swift is well-known for building iOS apps, this book focuses on teaching foundational programming skills using Swift — things like variables, functions, conditionals, structs and more. This is a great basis even if Swift is not your final destination, since its syntax is simple and human-friendly, which is great for beginners."
+ - question: "Is there a project or app at the end of the book?"
+ answer: "Although this is not a project-based book, each lesson guide you through solving exercises — hints and solutions are provided as well. After every chapter, there’s a closing collection of exercises too. You will finish each chapter with a small win and something to reflect on your progress."
+ - question: "Will this book help me get a job as a developer?"
+ answer: "While it won’t make you job-ready on its own, this book lays a strong foundation. It’s your first step toward a career in tech — and a great companion to more advanced resources later. We believe that following along an expert and mimic what you see from the first second might sound faster, but far less reliable as a foundation and might leave you disappointed when you try to build something for the first time on your own."
+ - question: "What makes Swift a good language for beginners?"
+ answer: "Swift is designed to be safe, modern, and readable. Its syntax is friendly for newcomers, and it’s used by Apple across all its platforms. That means the skills you learn here are practical and future-proof."
+ - question: "Can I ask questions if I get stuck?"
+ answer: "Yes! We love hearing from readers. You can reach out to us on X, Mastodon or Bluesky, or via email. We’re working on building a small community for learners too."
+ - question: "Can I use Windows or Linux to follow this book?"
+ answer: "Yes, absolutely! Although Swift is the official programming language developed by Apple, thanks to its continuous evolution it’s an all purpose language. You can use any operating system."
+ - question: "How is this book different from other Swift programming books?"
+ answer: "Most of the books out there focus on people who have some experience with programming. Our book is well-structured, paced, and written specifically for absolute beginners, with clear language, explanations, and a learning journey that feels human and fun."
+ - question: "Do I still need to learn programming in the age of AI?"
+ answer: "Yes — more than ever. AI can assist you, but it can’t think for you. Knowing how to code gives you creative control and helps you spot mistakes AI tools might introduce."
+ - question: "What’s the point of reading a programming book when I have AI?"
+ answer: "A book gives you structure, pacing, and progression. It’s built thoughtfully. AI is great for answering questions, but it’s not able to teach a whole programming language in a trustworthy, reasonable way from the foundations to the more advanced concepts."
+ - question: "Can I switch to other languages after learning Swift?"
+ answer: "Absolutely. Once you understand Swift, moving to languages like JavaScript, Python, or Kotlin is much easier. Learning your first language well is the hardest part — and Swift is a great first step."
+
+ask:
+ title: "Ask us"
+ subtitle: "We'd love to hear from you"
+ channels:
+ - title: "Join us on Discord"
+ description: |
+ Want to make an impact?
+ Want to get to know others in the same shoe as you?
+ Join a living community on Discord to learn and shape the book together. Find mates to motivate each other. Ask questions if you get stuck and get free mentoring in exchange for your precious feedback.
+ icons:
+ - link: "https://discord.gg/vEVdp5xn5e"
+ image: "Discord"
+ - title: "Follow us on X, Bluesky and Mastodon"
+ description: |
+ Follow us on social platforms for Swift related content and updates.
+ We’re sharing complementary educational stuff on programming — pieces of info, visuals, and of course sneak peaks into what we’re currently working on.
+ icons:
+ - link: "https://x.com/kittibodecs"
+ image: "X"
+ - link: "https://bsky.app/profile/kittibodecs.bsky.social"
+ image: "Bluesky"
+ - link: "https://mastodon.social/@kittibodecs"
+ image: "Mastodon"
+ - title: "Prefer to drop an email?"
+ description: |
+ Write us an e-mail to learntocodeusingswift@gmail.com.
+ Send us your thoughts on the book, ask questions , or show us your dog.
+ icons:
+
+cta:
+ title: "Start coding with Swift"
+ subtitle: "It’s modern, powerful, and a breeze to use"
+ buttons:
+ primary:
+ label: "Get the book for $49"
+ url: "https://theswiftdev.gumroad.com/l/learn-to-code-using-swift"
+ secondary:
+ label: "Download sample"
+ url: "https://theswiftdev.com/assets/learn-to-code-using-swift/sample.pdf"
+ note: "14 day money-back guarantee"
diff --git a/site.yml b/site.yml
index 9e8731b..a7418f5 100644
--- a/site.yml
+++ b/site.yml
@@ -4,11 +4,24 @@ language: "en-US"
navigation:
- label: "Summary"
url: "/"
+ - label: "Testimonials"
+ url: "/#testimonials"
- label: "Authors"
url: "/#authors"
- - label: "Chapters"
- url: "/#chapters"
+ - label: "Content"
+ url: "/#content"
- label: "FAQ"
url: "/#faq"
- label: "Contact"
- url: "/#contact"
\ No newline at end of file
+ url: "/#contact"
+
+footer:
+ discord:
+ link: "https://discord.gg/vEVdp5xn5e"
+ x:
+ link: "https://x.com/kittibodecs"
+ bluesky:
+ link: "https://bsky.app/profile/kittibodecs.bsky.social"
+ mastodon:
+ link: "https://mastodon.social/@kittibodecs"
+
\ No newline at end of file
diff --git a/templates/default/assets/css/theme.css b/templates/default/assets/css/theme.css
index ecfa910..7a5329a 100644
--- a/templates/default/assets/css/theme.css
+++ b/templates/default/assets/css/theme.css
@@ -1,84 +1,46 @@
:root {
- --swift: #F05138;
+ --color-text-primary: #b5b4b6;
+ --color-text-secondary: #fff;
+ --color-background-primary: #000;
+ --color-border-primary: #999;
+ --color-border-secondary: #5F291F;
+
+ --font-family-afacad: "Afacad", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
+ --font-family-aldrich: "Aldrich", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
+
+ --font-size-72-pixel: 4.5rem;
+ --font-size-64-pixel: 4rem;
+ --font-size-48-pixel: 3rem;
+ --font-size-32-pixel: 2rem;
+ --font-size-28-pixel: 1.75rem;
+ --font-size-24-pixel: 1.5rem;
+ --font-size-20-pixel: 1.25rem;
+ --font-size-16-pixel: 1rem;
+ --font-size-14-pixel: 0.875rem;
+
+ --line-height: 140%;
+ --line-height-heading: 120%;
--color-primary: #DE5D43;
- --color-border: #C2543F;
+ --color-border: #E3755F;
--color-secondary: #FBB040;
--color-tertiary: #FF3527;
-
- --color-button-text: #CD563E;
- --color-button-background: #FAEEEB;
- --color-button-border: #F4D8D1;
- --color-heading-primary: #222;
-
- --color-text-primary: #606060;
- --color-background-primary: #fff;
- --color-border-primary: #f9f9f9;
-
- --color-text-secondary: #444;
- --color-background-secondary: #e6e6e6;
- --color-border-secondary: #ccc;
+ --color-button-text: #DE5D43;
+ --color-button-background: #170907;
+ --color-button-border: #351610;
- --color-text-tertiary: #222;
- --color-background-tertiary: #d0d0d0;
- --color-border-tertiary: #f9f9f9;
-
- --color-text-panel: #606060;
- --color-background-panel: rgba(204, 204, 204, 0.1);
- --color-border-panel: rgba(204, 204, 204, 0.9);
- --color-text-card: #606060;
- --color-background-card: #f6f6f6;
- --color-border-card: rgba(204, 204, 204, 0.9);
-}
-@media (prefers-color-scheme: dark) {
- :root {
- --color-primary: #DE5D43;
- --color-border: #E3755F;
- --color-secondary: #FBB040;
- --color-tertiary: #FF3527;
-
- --color-button-text: #DE5D43;
- --color-button-background: #170907;
- --color-button-border: #351610;
-
- --color-heading-primary: #c9c9c9;
-
- --color-text-primary: #909090;
- --color-background-primary: #000;
- --color-border-primary: #101010;
-
- --color-text-secondary: #d0d0d0;
- --color-background-secondary: #222;
- --color-border-secondary: #666;
-
- --color-text-tertiary: #909090;
- --color-background-tertiary: #444;
- --color-border-tertiary: #101010;
-
- --color-text-panel: #606060;
- --color-background-panel: rgba(51, 51, 51, 0.1);
- --color-border-panel: rgba(102, 102, 102, 0.8);
- --color-text-card: #606060;
- --color-background-card: #101010;
- --color-border-card: rgba(102, 102, 102, 0.8);
- }
-}
-
-:root {
- --font-size: 1.25rem;
- --line-height: 1.5rem;
}
@media screen and (min-width: 600px) {
:root {
- --font-size: 1.25rem;
+ --font-size-16-pixel: 1rem;
}
}
@media screen and (min-width: 900px) {
:root {
- --font-size: 1.5rem;
+ --font-size-16-pixel: 1rem;
}
}
@media screen and (min-width: 1200px) {
@@ -101,70 +63,101 @@
margin: 0;
padding: 0
}
-html,body {
+html, body {
overflow-x: hidden;
+ background: linear-gradient(to right,#000 0%, #0E061F, #000 100%);
background-color: var(--color-background-primary);
color: var(--color-text-primary);
}
html {
- font-size: var(--font-size);
+ font-size: var(--font-size-16-pixel);
}
body {
- font-family: "Afacad", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-20-pixel);
line-height: var(--line-height);
}
+img {
+ width: auto;
+}
+
main {
min-height: 100vh;
}
-h1, h2, h3, h4, h5, h6 {
- font-family: "Aldrich", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
- font-weight: bold;
- margin-top: 3rem;
- margin-bottom: 1.5rem;
- color: var(--color-heading-primary);
-}
h1 {
- font-size: 3.5rem;
- line-height: 4.5rem;
- white-space: pre-line;
+ font-size: var(--font-size-72-pixel);
}
h2 {
- font-size: 2.5rem;
- line-height: 3rem;
+ font-size: var(--font-size-48-pixel);
}
h3 {
- font-size: 2rem;
- line-height: 3rem;
+ font-size: var(--font-size-32-pixel);
}
h4 {
- font-size: 2rem;
- line-height: 3rem;
+ font-size: var(--font-size-28-pixel);
}
h5 {
- font-size: 1.5rem;
- line-height: 3rem;
+ font-size: var(--font-size-24-pixel);
}
h6 {
- font-size: 1.25rem;
- line-height: 1.5rem;
+ font-size: var(--font-size-20-pixel);
}
-h1.title, h2.title, h3.title, h4.title, h5.title, h6.title {
- margin-top: 0;
+
+h1, h2, h3, h4, h5, h6 {
+ color: var(--color-text-secondary);
+ font-family: var(--font-family-aldrich);
+ line-height: var(--line-height-heading);
+ font-weight: 500;
+ margin-top: 20px;
+ margin-bottom: 0;
+ text-wrap: balance;
+ white-space: pre-line;
}
+
p {
- margin-top: 1.5rem;
- margin-bottom: 1.5rem;
+ margin-top: 20px;
+ margin-bottom: 20px;
+}
+p.tagline {
+ font-family: var(--font-family-aldrich);
+ font-size: var(--font-size-32-pixel);
+ line-height: var(--line-height);
+ margin-bottom: 80px;
+}
+span.info {
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-14-pixel);
+ line-height: var(--line-height);
+ display: block;
+}
+span.caption {
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-16-pixel);
+ line-height: var(--line-height);
+ color: #999;
+ display: inline-block;
+ padding: 0px 10px;
+ border: 1px solid #26252A;
+}
+span.gradient {
+ background: linear-gradient(to right, #F05238 0%, #F76C1F 50%, #FF8706 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ color: transparent;
}
+
+
a {
+ font-family: var(--font-family-aldrich);
+ font-size: var(--font-size-16-pixel);
+ line-height: var(--line-height);
+ font-weight: 400;
text-decoration: none;
}
a:hover, a:active {
cursor: pointer;
}
-a:hover {
- text-decoration: underline;
- text-decoration-color: #444;
-}
a:link {
color: var(--color-primary);
}
@@ -172,32 +165,27 @@ a:visited {
color: var(--color-primary);
}
ul, ol {
- padding-left: 1.5rem;
-
+ padding-left: 20px;
}
li ul, li ol {
margin-top: 0;
margin-bottom: 0;
}
article {
- margin-bottom: 4rem;
+ margin-bottom: 40px;;
}
ul, ol {
- margin-top: 1.5rem;
- margin-bottom: 1.5rem;
+ margin-top: 20px;
+ margin-bottom: 20px;;
}
strong {
- font-weight: bold;
+ font-weight: 500;
}
-article img {
- border-radius: 0.5rem;
- width: 100%;
-}
.grid {
display: grid;
- column-gap: 1rem;
- row-gap: 1rem;
+ column-gap: 20px;
+ row-gap: 20px;
grid-column: span 1;
grid-template-columns: repeat(1, 1fr);
}
@@ -228,44 +216,615 @@ article img {
}
.wrapper {
- padding: 0 1rem;
- max-width: 720px;
+ padding: 0 20px;
+ max-width: 960px;
margin: 0 auto;
}
-.wrapper > *:first-child {
- margin-top: 0;
- padding-top: 1.5rem;
+
+#navigation nav {
+ overflow: hidden;
+}
+#navigation #primary-menu-button {
+ display: none;
+}
+#navigation #primary-menu-button + label {
+ position: absolute;
+ top: 30px;
+ left: 0;
+ line-height: 0;
+ padding: 0;
+ width: 100%;
+}
+#navigation #primary-menu-button + label:hover {
+ cursor: pointer;
+}
+#navigation .menu-items {
+ padding: 0;
+ margin-top: 70px;
+ max-height: 0px;
+ transition: max-height .3s ease-in-out 0s;
+}
+#navigation .menu-items a {
+ display: block;
+ padding: 20px 10px;
+ color: var(--color-text-secondary);
+}
+#navigation .menu-items a:hover {
+ color: var(--color-text-primary);
+}
+#navigation input:checked ~ .menu-items {
+ max-height: 999px;
+}
+#navigation line {
+ transition: transform .3s ease-in-out 0s;
+ transform-origin: 50% 50%;
+}
+#navigation input:checked ~ label line:nth-child(1) {
+ transform: translateX(-50px);
+}
+#navigation input:checked ~ label line:nth-child(2) {
+ transform: rotate(45deg) translateY(6px);
+}
+#navigation input:checked ~ label line:nth-child(3) {
+ transform: rotate(-45deg) translateY(-6px);
+}
+@media screen and (min-width: 900px) {
+ #navigation {
+ padding: 20px;
+ }
+ #navigation #primary-menu-button ~ label {
+ display: none;
+ }
+ #navigation .menu-items {
+ display: block;
+ max-height: none;
+ text-align: right;
+ padding: 20px;
+ margin-top: 0;
+ }
+ #navigation .menu-items a {
+ display: inline-block;
+ border: none;
+ padding: 0px 10px;
+ }
}
-h1 {
+.button {
+ text-align: center;
+ padding: 10px 20px;
+ margin: 0;
+}
+.button.primary {
+ color: #f5f5f5;
+ background: linear-gradient(89.54deg, #DC4200 0.4%, #FF7226 99.6%);
+ border: 1px solid #EF8A34;
+}
+.button.primary:hover {
+ background: linear-gradient(89.54deg, #AF3906 0.4%, #F75C09 99.6%);
+ border: 1px solid #CB4E22;
+}
+.button.primary:active {
+ background: linear-gradient(89.54deg, #DC4200 0.4%, #FF7226 99.6%);
+ border: 1px solid #EF8A34;
+}
+.button.secondary {
+ color: #FF7226;
+ background: #4B4B4C;
+ border: 1px solid #CDA779;
+}
+.button.secondary:hover {
+ background: #2E2E2F;
+ border: 1px solid #AF885A;
+}
+.button.secondary:active {
+ background: #4B4B4C;
+ border: 1px solid #DFB37F;
+}
+
+.hero {
+ background: url(../images/Hero.png);
+ background-size: cover;
+ background-position: top right;
+ background-repeat: no-repeat;
+ padding-bottom: 60px;
+ text-align: center;
+}
+.hero .wrapper {
+ max-width: 720px;
+}
+
+.hero .logo-box {
+ text-align: center;
+ position: relative;
+ height: 140px;
+}
+.hero .wrapper .logo-box img {
+ width: 200px;
+ position: relative;
+ top: 0;
+ left: 0;
+}
+.hero .features {
+ display: flex;
+ justify-content: center;
+}
+.hero .feature {
+ padding: 10px;
+ display: flex;
+ align-items: center;
+}
+
+.hero .feature img {
+ width: 24px;
+ padding: 0 5px;
+}
+.button {
+ display: block;
+ margin-bottom: 20px;
+
+}
+@media screen and (min-width: 600px) {
+ .button {
+ display: inline-block;
+ }
+ .button ~ .button {
+ margin-left: 20px;
+ }
+}
+@media screen and (min-width: 1200px) {
+ .hero .logo-box {
+ text-align: left;
+ position: relative;
+ height: 120px;
+ }
+ .hero .wrapper .logo-box img {
+ width: 400px;
+ position: absolute;
+ top: -100px;
+ left: -260px;
+ }
+
+}
+.hero .wrapper h1 {
+ font-family: var(--font-family-afacad);
+ text-transform: uppercase;
+ margin: 80px auto;
+}
+.hero .wrapper .features {
+ margin-top: 80px;
+}
+.hero .wrapper span {
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-20-pixel);
+ line-height: var(--line-height);
+ font-weight: 400;
+}
+
+
+.highlights, .book, .testimonials, .authors, .chapters, .callout, .faq, .contact, .cta {
+ padding: 80px 0;
+}
+.highlights h2 {
+ max-width: 100%;
+}
+
+.highlights .grid {
+ margin-top: 40px;
+ row-gap: 40px;
+ column-gap: 0;
+}
+.highlights .grid h3 {
+ font-size: var(--font-size-28-pixel);
+ line-height: var(--line-height);
+ border-left: 1px dashed var(--color-border-secondary);
+ padding-left: 20px;
+}
+.highlights .grid p {
+ font-size: var(--font-size-20-pixel);
+ line-height: 135%;
+}
+@media screen and (min-width: 600px) {
+ .highlights .grid {
+ column-gap: 100px;
+ row-gap: 100px;
+ }
+ .highlights h2 {
+ max-width: 50%;
+ }
+}
+
+.book > .wrapper > h2 {
+ text-align: center;
+ margin-top: 10px;
+ text-wrap: wrap;
+}
+.book > .wrapper > p {
+ text-transform: uppercase;
+ font-family: var(--font-family-aldrich);
+ font-size: var(--font-size-20-pixel);
+ line-height: var(--line-height);
+ font-weight: normal;
+ text-align: center;
+}
+.book > .wrapper .grid {
+ margin-top: 80px;
+}
+.book > .wrapper dl {
+ margin-bottom: 40px;
+ margin-left: 50px;
+}
+
+.book > .wrapper dl dt {
+ font-family: var(--font-family-aldrich);
+ font-size: var(--font-size-24-pixel);
+ line-height: var(--line-height);
+ color: var(--color-text-secondary);
+ margin-bottom: 10px;
+ position: relative;
+}
+.book > .wrapper dl dt::before {
+ content: "";
+ position: absolute;
+ left: -42px;
+ top: 6px;
+ width: 28px;
+ height: 27px;
+ background: url("../images/Polygon.png") no-repeat center / contain;
+}
+@media screen and (min-width: 600px) {
+ .book > .wrapper dl {
+ margin-left: 0;
+ }
+}
+.book > .wrapper dl dd {
+ font-size: var(--font-size-20-pixel);
+ line-height: var(--line-height);
+ margin-bottom: 40px;
+}
+.book img, .authors img {
+ width: 100%;
+}
+
+.testimonials {
+ background: url(../images/Testimonials.jpg);
+ background-size: cover;
+ background-position: top center;
+ background-repeat: no-repeat;
+}
+.testimonials h2 {
+ margin-bottom: 80px;
+}
+
+.testimonials h2 span {
+ display: block;
+ color: var(--color-border-secondary);
+ font-size: var(--font-size-64-pixel);
+ line-height: var(--line-height);
+ line-height: 80%;
+}
+
+@media screen and (min-width: 600px) {
+ .testimonials h2 {
+ max-width: 50%;
+ }
+}
+
+.testimonials .grid > * {
+ border: 1px dashed var(--color-border-secondary);
+ padding: 20px;
+ margin: 20px;
+}
+
+
+
+.testimonials .grid .source {
+ padding-bottom: 20px;
+ display: flex;
+ align-items: center;
+}
+.testimonials .grid img {
+ width: 40px;
+ background: #eee;
+ margin: 0 10px;
+}
+.testimonials .grid .source span.name {
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-16-pixel);
+ line-height: var(--line-height);
+ display: block;
+}
+
+.testimonials .grid p {
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-20-pixel);
+ line-height: var(--line-height);
+ color: var(--color-text-secondary);
+ margin: 0;
+}
+
+.authors .grid {
+ background: url(../images/Triangles.png);
+ background-size: 90%;
+ background-position: bottom right;
+ background-repeat: no-repeat;
+}
+.authors .picture-wrapper {
+ display: flex;
+ margin-top: auto;
+}
+.authors .names {
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-24-pixel);
+ line-height: var(--line-height);
margin-top: 0;
- text-wrap: balance;
+ margin-bottom: 80px;
+}
+@media screen and (min-width: 900px) {
+ .authors .grid {
+ background-size: 60%;
+ }
}
-.grid .next, .grid .prev {
- background: var(--color-background-card);
- color: var(--color-text-card);
- padding: 0 1.5rem;
- padding-bottom: 1.5rem;
- border-radius: 0.5rem;
+.chapters > .wrapper > .grid {
+ column-gap: 80px;
+ row-gap: 0px;
+ margin-top: 80px;
}
-.grid .next p, .grid .prev p {
- margin-bottom: 0;
+.chapters > .wrapper > .grid .right {
+ border-bottom: 1px dashed var(--color-border-secondary);
+ margin-bottom: 40px;
+ padding-bottom: 40px;
}
-.grid .next {
- text-align: right;
+
+.chapters > .wrapper > .grid .right img {
+ width: auto;
+}
+
+@media screen and (min-width: 900px) {
+ .chapters > .wrapper > .grid .right img {
+ width: 100%;
+ }
+ .chapters > .wrapper > .grid .right {
+ border: none;
+ margin-bottom: 0;
+ padding-bottom: 0;
+ }
+ .chapters > .wrapper > .grid {
+ row-gap: 80px;
+ background: url(../images/Line.png);
+ background-size: 1px 6px;
+ background-repeat: repeat-y;
+ background-position: center;
+ /* background-position: 63.5% 50%; */
+ }
}
-.grid .prev:hover, .grid .next:hover {
- text-decoration: none;
+
+.chapters p, .chapters h4, .chapters li {
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-20-pixel);
+ line-height: var(--line-height);
+
+}
+.chapters h3 {
+ /* border-bottom: 1px dashed var(--color-border-secondary); */
+}
+.chapters h4 {
+ color: var(--color-text-primary);
+}
+.chapters ul {
+ padding-left: 0;
+}
+.chapters li {
+ list-style-type: none;
+ color: var(--color-text-secondary);
+}
+.chapters .arrow {
+ text-align: center;
+ width: 200px;
+ margin: auto;
+}
+.chapters .arrow img {
+ width: 100%;
+}
+
+
+.callout {
+ text-align: center;
+}
+.callout p.more {
+ margin-top: 80px;
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-16-pixel);
+ line-height: var(--line-height);
+}
+
+.faq h2 {
+ margin-bottom: 80px;
}
-.grid .prev p.link, .grid .next p.link,
-.grid .prev p.arrow, .grid .next p.arrow {
+@media screen and (min-width: 600px) {
+ .faq h2 {
+ width: 50%;
+ }
+}
+.faq details {
+ border-top: 1px dashed var(--color-border-secondary);
+ padding: 20px;
+}
+.faq details summary {
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-32-pixel);
+ line-height: var(--line-height);
+ color: var(--color-text-secondary);
+}
+.faq details summary:hover {
+ cursor: pointer;
+}
+.faq summary {
+ position: relative;
+ list-style: none;
+ padding-left: 40px;
+}
+.faq summary::-webkit-details-marker {
+ display: none;
+}
+.faq summary:hover {
+ cursor: pointer;
+}
+.faq summary::-webkit-details-marker {
+ display: none;
+}
+.faq summary:after {
+ content: "\002B";
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-32-pixel);
+ line-height: var(--line-height);
color: var(--color-primary);
+ position: absolute;
+ top: 0;
+ left: 0;
}
-.grid .prev:hover p.link, .grid .next:hover p.link {
- text-decoration: underline;
- text-decoration-color: #444;
+details[open] summary:after {
+ content: "\00D7";
}
-.grid .prev p.link, .grid .next p.link {
- margin-top: 0;
+
+.contact {
+ text-align: center;
+}
+.contact h3 {
+ margin-top: 10px;
+}
+.contact .grid {
+ max-width: 720px;
+ margin: 0 auto;
+ margin-top: 80px;
+ text-align: left;
+ grid-template-columns: 44px 1fr;
+}
+.contact .wrapper {
+ position: relative;
+}
+.contact .email {
+ text-align: right;
}
+.contact h3 {
+ margin-top: 5px;
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-28-pixel);
+ line-height: var(--line-height);
+ font-weight: normal;
+}
+.contact img {
+ padding: 5px;
+}
+.contact .email img {
+ width: 140px;
+}
+
+
+
+
+.cta {
+ position: relative;
+ z-index: 2;
+ text-align: center;
+}
+.cta .tagline {
+ margin-bottom: 80px;
+}
+.cta .wrapper .contents {
+ border: 1px dashed var(--color-border-secondary);
+ padding: 40px;
+ padding-top: 100px;
+ margin: 20px;
+}
+
+@media screen and (min-width: 600px) {
+ .cta .wrapper {
+ margin: auto;
+ }
+}
+
+footer .wrapper {
+ /* border: 1px solid blue; */
+ position: relative;
+}
+footer .background {
+ display: none;
+}
+footer {
+ text-align: center;
+ border-bottom: 1px dashed var(--color-border-secondary);
+ margin-bottom: 160px;
+}
+footer .grid {
+ padding: 20px;
+ z-index: 2;
+ position: relative;
+ grid-template-columns: 1fr;
+ column-gap: 10px;
+ row-gap: 20px;
+ margin-bottom: 20px;
+}
+footer img {
+ width: 250px;
+ margin: auto;
+}
+footer h3 {
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-20-pixel);
+ line-height: var(--line-height);
+ color: var(--color-text-secondary);
+}
+footer h3.name {
+ font-family: var(--font-family-aldrich);
+ font-size: var(--font-size-20-pixel);
+ line-height: var(--line-height);
+}
+footer ul {
+ padding-left: 0;
+}
+footer li {
+ list-style-type: none;
+}
+footer li a {
+ font-family: var(--font-family-afacad);
+ font-size: var(--font-size-20-pixel);
+ line-height: var(--line-height);
+ display: block;
+ margin-bottom: 10px;
+}
+footer li a, footer li a:link, footer li a:visited {
+ color: var(--color-text-primary);
+}
+footer li a:hover {
+ color: var(--color-text-secondary);
+}
+
+footer .social img {
+ width: 32px;
+ display: inline-block;
+ margin: 20px 5px;
+}
+@media screen and (min-width: 900px) {
+ footer .background {
+ display: block;
+ position: absolute;
+ bottom: -20px;
+ right: -90px;
+ width: 1280px;
+ height: 972px;
+ z-index: 1;
+ background: url(../images/Footer.jpg);
+ background-size: cover;
+ background-position: bottom center;
+ background-repeat: no-repeat;
+ }
+
+ footer {
+ text-align: left;
+ }
+ footer .grid {
+ grid-template-columns: 37% 20% 20% 23%;
+ }
+}
+
diff --git a/templates/default/assets/images/Arrow.png b/templates/default/assets/images/Arrow.png
new file mode 100644
index 0000000..d128077
Binary files /dev/null and b/templates/default/assets/images/Arrow.png differ
diff --git a/templates/default/assets/images/Authors.png b/templates/default/assets/images/Authors.png
new file mode 100644
index 0000000..4c156c9
Binary files /dev/null and b/templates/default/assets/images/Authors.png differ
diff --git a/templates/default/assets/images/Book.png b/templates/default/assets/images/Book.png
new file mode 100644
index 0000000..0ffb55d
Binary files /dev/null and b/templates/default/assets/images/Book.png differ
diff --git a/templates/default/assets/images/Email.png b/templates/default/assets/images/Email.png
new file mode 100644
index 0000000..7a4762b
Binary files /dev/null and b/templates/default/assets/images/Email.png differ
diff --git a/templates/default/assets/images/Footer.jpg b/templates/default/assets/images/Footer.jpg
new file mode 100644
index 0000000..88902b6
Binary files /dev/null and b/templates/default/assets/images/Footer.jpg differ
diff --git a/templates/default/assets/images/Hero.jpg b/templates/default/assets/images/Hero.jpg
new file mode 100644
index 0000000..272f3cb
Binary files /dev/null and b/templates/default/assets/images/Hero.jpg differ
diff --git a/templates/default/assets/images/Hero.png b/templates/default/assets/images/Hero.png
new file mode 100644
index 0000000..b2a1e10
Binary files /dev/null and b/templates/default/assets/images/Hero.png differ
diff --git a/templates/default/assets/images/Line.png b/templates/default/assets/images/Line.png
new file mode 100644
index 0000000..bfd4972
Binary files /dev/null and b/templates/default/assets/images/Line.png differ
diff --git a/templates/default/assets/images/Meta.jpg b/templates/default/assets/images/Meta.jpg
new file mode 100644
index 0000000..f8fd24d
Binary files /dev/null and b/templates/default/assets/images/Meta.jpg differ
diff --git a/templates/default/assets/images/Polygon.png b/templates/default/assets/images/Polygon.png
new file mode 100644
index 0000000..4cdec1b
Binary files /dev/null and b/templates/default/assets/images/Polygon.png differ
diff --git a/templates/default/assets/images/Testimonials.jpg b/templates/default/assets/images/Testimonials.jpg
new file mode 100644
index 0000000..6368a13
Binary files /dev/null and b/templates/default/assets/images/Testimonials.jpg differ
diff --git a/templates/default/assets/images/Triangles.png b/templates/default/assets/images/Triangles.png
new file mode 100644
index 0000000..54fde93
Binary files /dev/null and b/templates/default/assets/images/Triangles.png differ
diff --git a/templates/default/assets/images/chapters/00.png b/templates/default/assets/images/chapters/00.png
new file mode 100644
index 0000000..ef00060
Binary files /dev/null and b/templates/default/assets/images/chapters/00.png differ
diff --git a/templates/default/assets/images/chapters/01.png b/templates/default/assets/images/chapters/01.png
new file mode 100644
index 0000000..b40c4c2
Binary files /dev/null and b/templates/default/assets/images/chapters/01.png differ
diff --git a/templates/default/assets/images/chapters/02.png b/templates/default/assets/images/chapters/02.png
new file mode 100644
index 0000000..53eef68
Binary files /dev/null and b/templates/default/assets/images/chapters/02.png differ
diff --git a/templates/default/assets/images/chapters/03.png b/templates/default/assets/images/chapters/03.png
new file mode 100644
index 0000000..37bd244
Binary files /dev/null and b/templates/default/assets/images/chapters/03.png differ
diff --git a/templates/default/assets/images/chapters/04.png b/templates/default/assets/images/chapters/04.png
new file mode 100644
index 0000000..87fd024
Binary files /dev/null and b/templates/default/assets/images/chapters/04.png differ
diff --git a/templates/default/assets/images/chapters/05.png b/templates/default/assets/images/chapters/05.png
new file mode 100644
index 0000000..23e52f9
Binary files /dev/null and b/templates/default/assets/images/chapters/05.png differ
diff --git a/templates/default/assets/images/chapters/06.png b/templates/default/assets/images/chapters/06.png
new file mode 100644
index 0000000..79681a8
Binary files /dev/null and b/templates/default/assets/images/chapters/06.png differ
diff --git a/templates/default/assets/images/chapters/07.png b/templates/default/assets/images/chapters/07.png
new file mode 100644
index 0000000..fe89924
Binary files /dev/null and b/templates/default/assets/images/chapters/07.png differ
diff --git a/templates/default/assets/images/chapters/08.png b/templates/default/assets/images/chapters/08.png
new file mode 100644
index 0000000..c050ceb
Binary files /dev/null and b/templates/default/assets/images/chapters/08.png differ
diff --git a/templates/default/assets/images/chapters/09.png b/templates/default/assets/images/chapters/09.png
new file mode 100644
index 0000000..1680797
Binary files /dev/null and b/templates/default/assets/images/chapters/09.png differ
diff --git a/templates/default/assets/images/chapters/10.png b/templates/default/assets/images/chapters/10.png
new file mode 100644
index 0000000..487cdf4
Binary files /dev/null and b/templates/default/assets/images/chapters/10.png differ
diff --git a/templates/default/assets/images/chapters/11.png b/templates/default/assets/images/chapters/11.png
new file mode 100644
index 0000000..a1e0b86
Binary files /dev/null and b/templates/default/assets/images/chapters/11.png differ
diff --git a/templates/default/assets/images/chapters/12.png b/templates/default/assets/images/chapters/12.png
new file mode 100644
index 0000000..34e54d2
Binary files /dev/null and b/templates/default/assets/images/chapters/12.png differ
diff --git a/templates/default/assets/images/chapters/13.png b/templates/default/assets/images/chapters/13.png
new file mode 100644
index 0000000..f0e5698
Binary files /dev/null and b/templates/default/assets/images/chapters/13.png differ
diff --git a/templates/default/assets/images/chapters/14.png b/templates/default/assets/images/chapters/14.png
new file mode 100644
index 0000000..9fff3bc
Binary files /dev/null and b/templates/default/assets/images/chapters/14.png differ
diff --git a/templates/default/assets/images/chapters/15.png b/templates/default/assets/images/chapters/15.png
new file mode 100644
index 0000000..d7ecbd6
Binary files /dev/null and b/templates/default/assets/images/chapters/15.png differ
diff --git a/templates/default/assets/images/chapters/16.png b/templates/default/assets/images/chapters/16.png
new file mode 100644
index 0000000..bf2022d
Binary files /dev/null and b/templates/default/assets/images/chapters/16.png differ
diff --git a/templates/default/assets/images/hero/Chapters.png b/templates/default/assets/images/hero/Chapters.png
new file mode 100644
index 0000000..263c757
Binary files /dev/null and b/templates/default/assets/images/hero/Chapters.png differ
diff --git a/templates/default/assets/images/hero/Exercises.png b/templates/default/assets/images/hero/Exercises.png
new file mode 100644
index 0000000..61d3b0f
Binary files /dev/null and b/templates/default/assets/images/hero/Exercises.png differ
diff --git a/templates/default/assets/images/hero/Pages.png b/templates/default/assets/images/hero/Pages.png
new file mode 100644
index 0000000..279cbe9
Binary files /dev/null and b/templates/default/assets/images/hero/Pages.png differ
diff --git a/templates/default/assets/images/social/Bluesky.svg b/templates/default/assets/images/social/Bluesky.svg
new file mode 100644
index 0000000..b2c093e
--- /dev/null
+++ b/templates/default/assets/images/social/Bluesky.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/templates/default/assets/images/social/Discord.svg b/templates/default/assets/images/social/Discord.svg
new file mode 100644
index 0000000..76c356f
--- /dev/null
+++ b/templates/default/assets/images/social/Discord.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/templates/default/assets/images/social/Mastodon.svg b/templates/default/assets/images/social/Mastodon.svg
new file mode 100644
index 0000000..9da2eb4
--- /dev/null
+++ b/templates/default/assets/images/social/Mastodon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/templates/default/assets/images/social/X.svg b/templates/default/assets/images/social/X.svg
new file mode 100644
index 0000000..586c38f
--- /dev/null
+++ b/templates/default/assets/images/social/X.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/templates/default/template.yaml b/templates/default/template.yaml
index 99198f4..6aa3909 100644
--- a/templates/default/template.yaml
+++ b/templates/default/template.yaml
@@ -1,7 +1,7 @@
name: "Learn To Code Using Swift"
description: "Landing page template for the Learn to code using Swift book."
-generatorVersions:
- - "1.0.0-beta.6"
+generatorVersion:
+ value: "1.0.0-rc.1"
authors:
- name: "Kitti Bödecs"
- name: "Tibor Bödecs"
diff --git a/templates/default/views/html.mustache b/templates/default/views/html.mustache
index 5532b39..7541a4f 100644
--- a/templates/default/views/html.mustache
+++ b/templates/default/views/html.mustache
@@ -18,12 +18,12 @@
-
+
-
+
@@ -32,19 +32,65 @@
{{#page.css}}{{/page.css}}
-
-
-
-
+
{{$main}}{{/main}}
{{#page.js}}{{/page.js}}
diff --git a/templates/default/views/pages/404.mustache b/templates/default/views/pages/404.mustache
index b30f7ae..2cd1905 100644
--- a/templates/default/views/pages/404.mustache
+++ b/templates/default/views/pages/404.mustache
@@ -3,7 +3,7 @@
{{/menu}}
{{$main}}
-