Refactor theme colors and styles; remove unused favicon; update translations and layouts

- Deleted unused favicon file.
- Updated Tailwind CSS configuration to redefine primary and secondary colors.
- Adjusted button styles in CSS to use new color definitions.
- Removed English translations and added French translations for various UI elements.
- Created new layouts for features and updated existing layouts to reflect new design.
- Modified header and CTA components to use updated color scheme.
- Cleaned up pricing table shortcode to align with new styles.
- Updated theme metadata to reflect new author and project details.
This commit is contained in:
Boris Waaub
2026-01-28 13:22:33 +01:00
parent ad649599c9
commit d50f7013a9
39 changed files with 1119 additions and 810 deletions

View File

@@ -0,0 +1,5 @@
---
title: "Fonctionnalités"
description: "Découvrer toutes les fonctionnalités de CHILL"
layout: "list"
---

View File

@@ -1,66 +0,0 @@
---
title: "Beautiful Design System"
description: "Create stunning user interfaces with our comprehensive design system built on TailwindCSS. Customize everything to match your brand."
layout: "feature"
badge: "Design"
badgeColor: "#7c3aed"
features:
- title: "Modern UI Components"
description: "A complete set of pre-built components designed for SaaS websites. From navigation bars to pricing tables, everything you need is included."
- title: "Responsive Design"
description: "Every component is fully responsive and tested across all device sizes. Your website will look great on everything from phones to large displays."
- title: "Custom Typography"
description: "Carefully crafted typography system with perfect vertical rhythm. Easily customize fonts and sizes to match your brand guidelines."
- title: "Flexible Layouts"
description: "Modular layout system that adapts to your content. Create unique page layouts while maintaining consistent spacing and alignment."
demo:
description: "Explore our comprehensive design system built with TailwindCSS."
image: "/images/feature-2.svg"
---
## Comprehensive Design System
Our theme includes a complete design system that makes it easy to create beautiful, consistent interfaces. Built on TailwindCSS, it provides the flexibility to customize every aspect of your design while maintaining a professional look.
### Design Components
#### Core Elements
- Typography system with perfect vertical rhythm
- Color palette with semantic variables
- Spacing and sizing scales
- Grid and layout systems
#### UI Components
- Navigation components (headers, footers, menus)
- Hero sections and feature displays
- Cards and content containers
- Forms and input elements
- Buttons and CTAs
- Pricing tables
- Testimonial displays
- Team member profiles
#### Design Features
##### Customization
- Easy theme customization through TailwindCSS
- Brand color management
- Typography customization
- Spacing system adjustment
- Component variants
##### Accessibility
- WCAG 2.1 compliant components
- Proper ARIA attributes
- Keyboard navigation support
- High contrast mode support
- Screen reader optimized
##### Responsive Design
- Mobile-first approach
- Breakpoint system
- Fluid typography
- Adaptive layouts
- Touch-friendly interactions
Our design system provides the perfect foundation for creating beautiful, accessible, and responsive websites that stand out from the crowd.

View File

@@ -1,75 +0,0 @@
---
title: "Developer Experience"
description: "Enjoy a seamless development experience with hot reload, component-based architecture, and clean, maintainable code."
layout: "feature"
badge: "Development"
badgeColor: "#16a34a"
features:
- title: "Component System"
description: "Modular component architecture makes it easy to build and maintain your website. Reuse components across pages while maintaining consistency."
- title: "Easy Customization"
description: "Clear configuration files and well-organized code make it simple to customize any aspect of your site. No deep Hugo knowledge required."
- title: "Clean Code"
description: "Well-structured, documented code following best practices. Makes maintenance and updates straightforward for any developer."
- title: "Detailed Documentation"
description: "Comprehensive documentation covers everything from setup to advanced customization. Includes examples and best practices."
demo:
description: "See how our developer-friendly architecture makes building websites a breeze."
image: "/images/feature-3.svg"
---
## Built for Developers
Our theme is designed with developers in mind, providing a clean, efficient workflow that makes building websites enjoyable and productive.
### Development Features
#### Project Structure
- Logical directory organization
- Clear separation of concerns
- Modular component architecture
- Consistent naming conventions
#### Development Workflow
- Fast hot reload development server
- Automatic asset processing
- Source maps for debugging
- Build process optimization
#### Component System
##### Shortcodes
- Rich set of pre-built shortcodes
- Easy to create custom shortcodes
- Documentation for each shortcode
- Example implementations
##### Partials
- Reusable partial templates
- Context-aware components
- Easy to extend and modify
- Clear documentation
#### Customization
##### Configuration
- Central configuration file
- Environment variables support
- Feature flags
- Easy theme customization
##### Styling
- TailwindCSS integration
- PostCSS processing
- Custom CSS support
- Design token system
#### Documentation
- Getting started guide
- Component documentation
- Configuration reference
- Best practices
- Troubleshooting guide
- Deployment instructions
Our developer experience focuses on making it easy to build, customize, and maintain your website while following best practices and maintaining clean, efficient code.

View File

@@ -0,0 +1,23 @@
---
title: "Génération de documents"
description: "Grâce à un système de modèles personnalisables, vous pouvez générer automatiquement des documents avec un large éventail dinformations déjà pré-remplies à partir des données présentes dans lapplication."
weight: 5
layout: "single"
badge: "Documents"
badgeColor: "chill-orange"
demo:
description: "Générez facilement des documents personnalisés à partir des données saisies."
image: "/images/feature-2.svg"
---
## Présentation
Grâce à un système de modèles personnalisables, vous pouvez générer automatiquement des documents avec un large éventail dinformations déjà pré-remplies à partir des données présentes dans lapplication.
## Fonctionnalités principales
- **Informations sur l'usager** : Intégrez automatiquement les données individuelles.
- **Informations sur le ménage** : Ajoutez les informations relatives au foyer.
- **Détails financiers ou sociaux** : Insérez des données budgétaires ou sociales.
- **Et bien plus encore...** : Personnalisez vos modèles selon vos besoins.

View File

@@ -1,52 +0,0 @@
---
title: "Lightning-Fast Performance"
description: "Leverage Hugo's blazing-fast build times and optimized output. Your website loads instantly, providing an exceptional user experience."
layout: "feature"
badge: "Performance"
badgeColor: "#2563eb"
features:
- title: "Sub-second Page Loads"
description: "Experience instant page transitions with Hugo's static site generation. Pages load in milliseconds, ensuring visitors stay engaged."
- title: "Optimized Assets"
description: "Automatically optimize images, CSS, and JavaScript. Reduce file sizes without compromising quality for faster load times."
- title: "Minimal JavaScript"
description: "Built with minimal JavaScript dependencies. Pages remain fast and functional while keeping the bundle size small."
- title: "CDN-Ready Output"
description: "Deploy your site to any CDN for global distribution. Static files are optimized for edge caching and maximum performance."
demo:
description: "See how our optimized build process delivers lightning-fast page loads and smooth transitions."
image: "/images/feature-1.svg"
---
## Built for Speed
Our theme is engineered from the ground up with performance in mind. By leveraging Hugo's powerful static site generation and combining it with modern optimization techniques, we deliver websites that load instantly and run smoothly.
### Performance Metrics
- **Build Time**: Less than 1 second for most sites
- **Page Load Time**: Under 500ms first contentful paint
- **Time to Interactive**: Under 1.5 seconds
- **Google Lighthouse Score**: 95+ on all metrics
### Optimization Features
#### Asset Optimization
- Automatic image optimization and WebP conversion
- CSS minification and purging of unused styles
- JavaScript bundling and tree-shaking
- Lazy loading of images and components
#### Caching Strategy
- Efficient browser caching with proper headers
- Static asset fingerprinting
- Pre-rendered HTML for instant loads
- Service worker for offline capabilities
#### CDN Integration
- Built for global distribution
- Edge caching ready
- Automatic cache invalidation
- Geographic redundancy
Our performance-first approach ensures your website not only looks great but delivers an exceptional user experience through blazing-fast load times and smooth interactions.

View File

@@ -0,0 +1,23 @@
---
title: "Rapports & RGPD"
description: "Générez des rapports statistiques, organisez vos documents et assurez la conformité RGPD pour la sécurité et la confidentialité des données."
weight: 6
layout: "single"
badge: "Rapports & RGPD"
badgeColor: "chill-pink"
demo:
description: "Assurez la conformité RGPD et organisez vos rapports et documents."
image: "/images/feature-3.svg"
---
## Présentation
Générez des rapports statistiques, organisez vos documents et assurez la conformité RGPD pour la sécurité et la confidentialité des données.
## Fonctionnalités principales
- **Rapports statistiques** : Exportez des données précises pour lanalyse.
- **Génération de documents** : Créez des documents personnalisés à partir des données.
- **Organisation documentaire** : Classez et retrouvez facilement vos documents.
- **Conformité RGPD** : Respectez les obligations légales en matière de protection des données.

View File

@@ -0,0 +1,25 @@
---
title: "Rapports statistiques"
description: "CHILL vous permet dexporter des statistiques précises sur lensemble de vos entités."
weight: 4
layout: "single"
badge: "Statistiques"
badgeColor: "chill-yellow"
demo:
description: "Générez et exportez des rapports statistiques détaillés."
image: "/images/feature-2.svg"
---
## Présentation
CHILL vous permet dexporter des statistiques précises sur lensemble de vos entités, facilitant lanalyse et le pilotage de votre activité.
## Fonctionnalités principales
- **Données de lusager** : Analysez les informations individuelles.
- **Données des ménages** : Suivez les statistiques liées aux ménages.
- **Actions daccompagnement** : Mesurez limpact des actions menées.
- **Problématiques sociales** : Identifiez les problématiques rencontrées.
- **Rendez-vous** : Suivez la planification et la réalisation des rendez-vous.
- **Et bien plus encore...** : Profitez dune grande variété dindicateurs personnalisables.

View File

@@ -0,0 +1,23 @@
---
title: "Suivi des accompagnements"
description: "Créez et suivez un ou plusieurs parcours daccompagnement pour chaque usager, du diagnostic initial aux actions entreprises et aux progrès réalisés."
weight: 2
layout: "single"
badge: "Accompagnements"
badgeColor: "chill-green"
demo:
description: "Découvrez comment suivre et caractériser les parcours daccompagnement de chaque usager."
image: "/images/feature-2.svg"
---
## Présentation
Créez et suivez un ou plusieurs parcours daccompagnement pour chaque usager, du diagnostic initial aux actions entreprises et aux progrès réalisés. Cette fonctionnalité permet une gestion fine et personnalisée de laccompagnement social.
## Fonctionnalités principales
- **Renseigner les parcours** : Ajoutez et suivez les différents parcours daccompagnement.
- **Caractériser les parcours** : Définissez les caractéristiques propres à chaque accompagnement.
- **Enregistrer les échanges** : Gardez une trace des échanges et interactions avec lusager.
- **Actions mises en œuvre** : Planifiez et suivez les actions réalisées dans le cadre de laccompagnement.

View File

@@ -0,0 +1,24 @@
---
title: "Suivi des décisions"
description: "CHILL facilite le suivi et la validation de décisions au sein dune équipe."
weight: 3
layout: "single"
badge: "Décisions"
badgeColor: "chill-red"
demo:
description: "Découvrez comment gérer et valider les décisions collectives."
image: "/images/feature-2.svg"
---
## Présentation
CHILL facilite le suivi et la validation de décisions au sein dune équipe, en sappuyant sur des processus adaptés à vos besoins organisationnels.
## Fonctionnalités principales
- **Parcours de validation configurables** : Adaptez les étapes de validation selon vos besoins.
- **Approbation hiérarchique** : Permettez une validation par la hiérarchie si nécessaire.
- **Visa de services compétents** : Obtenez lavis ou le visa dun service spécifique.
- **Validations personnalisables** : Créez dautres types de validations selon vos processus internes.
- **Basé sur des documents existants** : Utilisez les documents déjà présents dans lapplication.
- **Basé sur des actions daccompagnement** : Intégrez la validation dans le suivi des accompagnements.

View File

@@ -0,0 +1,27 @@
---
title: "Suivi des usagers"
description: "CHILL vous offre une gestion complète et structurée des dossiers individuels, facilitant le suivi personnalisé de chaque usager."
weight: 1
layout: "single"
badge: "Usagers"
badgeColor: "chill-blue"
demo:
description: "Découvrez comment gérer et structurée les dossiers de vos usagers."
image: "/images/feature-2.svg"
---
## Présentation
CHILL vous offre une gestion complète et structurée des dossiers individuels, facilitant le suivi personnalisé de chaque usager. Grâce à une fiche individuelle détaillée, la gestion des ménages, le suivi budgétaire, lenregistrement de tâches et la génération de documents, vous disposez de tous les outils pour accompagner efficacement chaque personne.
## Fonctionnalités principales
- **Fiche individuelle détaillée** : Centralisez toutes les informations importantes sur chaque usager.
weight: 1
- **Gestion des ménages** : Suivez la composition et lévolution des ménages.
- **Suivi budgétaire** : Gardez une vue claire sur la situation financière des usagers.
- **Personnes ressources** : Identifiez et gérez les intervenants clés.
- **Génération de documents** : Créez automatiquement des documents à partir des données saisies.
- **Enregistrement de tâches** : Planifiez et suivez les actions à mener pour chaque dossier.

View File

@@ -0,0 +1,10 @@
---
title: "Installation par Champs-Libres"
layout: "simple"
---
Le code source de CHILL est hébergé sur gitlab.
Le dépot chill-bundles comporte les fonctionnalités principales de Chill. Ce dépôt est un ensemble de bundles Symfony.
Pour être déployées, il est préférable de les inclure dans une application Symfony, en les incluant dans les dépendances composer. De cette manière, il est aussi possible de personnaliser la configuration et lexécution de lapplication. La procédure est expliquée dans la documentation
Les tickets concernant le code de Chill se situent par conséquent dans ce dépôt chill-bundles, voir https://gitlab.com/Chill-Projet/chill-bundles/-/issues
La documentation technique de Chill se trouve à ladresse suivante: http://docs.chill.social/en/latest/
Pour échanger avec les développeurs de CHILL, il existe un salon sur la messagerie Matrix. Pour le rejoindre cliquez sur le lien #chill-social-admin:matrix.org ou scannez le code qr

View File

@@ -1,3 +1,7 @@
---
title: "Installation auto-hébergée"
layout: "simple"
---
Le code source de CHILL est hébergé sur gitlab.
Le dépot chill-bundles comporte les fonctionnalités principales de Chill. Ce dépôt est un ensemble de bundles Symfony.
Pour être déployées, il est préférable de les inclure dans une application Symfony, en les incluant dans les dépendances composer. De cette manière, il est aussi possible de personnaliser la configuration et lexécution de lapplication. La procédure est expliquée dans la documentation

View File

@@ -1,8 +0,0 @@
---
title: 首页
# Example Chinese homepage
# This is a demonstration of multilingual content
# Copy and translate your English content files to create Chinese versions
---
This is an example Chinese homepage file demonstrating multilingual support.

View File

@@ -1,25 +0,0 @@
---
title: "示例博客文章"
date: 2024-01-15
author: "作者姓名"
description: "这是一篇示例博客文章,展示中文内容的格式。"
categories: ["示例"]
tags: ["hugo", "多语言"]
featured_image: "/images/blog/blog-1.jpg"
---
## 介绍
这是一篇示例博客文章演示如何为Hugo Saasify主题创建中文内容。
## 内容结构
要创建多语言内容:
1.`content/zh-cn/` 目录中创建文件
2. 保持与英文内容相同的文件结构
3. 翻译front matter和正文内容
## 更多信息
查看主题文档了解更多关于多语言支持的信息。

View File

@@ -1,275 +1,342 @@
@font-face {
font-family: 'Lato', Arial;
font-family: "Lato", Arial;
src: url("assets/fonts/Lato/Lato-Regular.ttf") format("truetype");
font-display: optional;
font-weight: normal;
font-style: normal; }
font-style: normal;
}
body {
font-family: 'Lato', sans-serif; }
body .highlight {
padding: .25rem; }
body .highlight-1 {
background-color: rgba(67, 178, 157, 0.61); }
body .highlight-2 {
background-color: #e57469; }
body .highlight-3 {
background-color: #f1d275; }
font-family: "Lato", sans-serif;
}
body .highlight {
padding: 0.25rem;
}
body .highlight-1 {
background-color: rgba(67, 178, 157, 0.61);
}
body .highlight-2 {
background-color: #e57469;
}
body .highlight-3 {
background-color: #f1d275;
}
header.header {
background-color: #0d242e; }
background-color: #0d242e;
}
footer.footer {
background-color: rgba(67, 178, 157, 0.61); }
background-color: rgba(67, 178, 157, 0.61);
}
.chill-pres {
padding-top: 0rem; }
padding-top: 0rem;
}
.navbar .btn-primary {
background-color: #f46839;
border: 1px solid #f46839;
color: white; }
.navbar .btn-primary:hover {
background-color: #e89463;
border: 1px solid #e89463; }
color: white;
}
.navbar .btn-primary:hover {
background-color: #e89463;
border: 1px solid #e89463;
}
.navbar .lang-select {
color: white; }
color: white;
}
section.hero {
background-color: #0d242e; }
section.hero h1 {
color: rgba(67, 178, 157, 0.61); }
background-color: #0d242e;
}
section.hero h1 {
color: rgba(67, 178, 157, 0.61);
}
section.section-1 {
background-color: white;
padding-top: 10rem; }
section.section-1 li {
font-weight: 600; }
padding-top: 10rem;
}
section.section-1 li {
font-weight: 600;
}
section.section-2 .container {
color: #0d242e;
text-align: center;
margin-top: 4rem;
}
section.section-2 .container h2 {
line-height: 3.5rem;
}
section.section-2 {
background: #e9e3d8;
background: linear-gradient(180deg, #e9e3d8 0%, #efefef 100%); }
section.section-2 .container {
color: #0d242e;
text-align: center;
margin-top: 4rem; }
section.section-2 .container h2 {
line-height: 3.5rem; }
background: rgb(233, 227, 216);
background: linear-gradient(180deg, rgb(233, 227, 216) 0%, rgb(239, 239, 239) 100%);
}
section.section-3 {
background: #efefef;
background: linear-gradient(180deg, #efefef 0%, white 100%); }
section.section-3 h2 {
position: relative;
z-index: 1; }
section.section-3 h2:before {
content: '';
position: absolute;
width: 70px;
height: 70px;
left: -10%;
top: -30%;
margin-left: -35px;
background-color: #f46839;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 50px; }
background: rgb(239, 239, 239);
background: linear-gradient(180deg, rgb(239, 239, 239) 0%, rgb(255, 255, 255) 100%);
}
section.section-3 h2 {
position: relative;
z-index: 1;
}
section.section-3 h2:before {
content: "";
position: absolute;
width: 70px;
height: 70px;
left: -10%;
top: -30%;
margin-left: -35px;
background-color: #f46839;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 50px;
}
section.section-4 {
position: relative;
background-color: white; }
section.section-4 .row {
padding-bottom: 5rem; }
section.section-4 h4 {
font-weight: bold;
height: 175px;
color: #0d242e;
border: 1px dashed #0d242e;
border-radius: 15px;
padding: 3rem; }
section.section-4 .btn-primary {
position: absolute;
top: 52%;
left: 28%; }
background-color: white;
}
section.section-4 .row {
padding-bottom: 5rem;
}
section.section-4 h4 {
font-weight: bold;
height: 175px;
color: #0d242e;
border: 1px dashed #0d242e;
border-radius: 15px;
padding: 3rem;
}
section.section-4 .btn-primary {
position: absolute;
top: 52%;
left: 28%;
}
section.section-5 {
background-color: rgba(67, 178, 157, 0.11); }
background-color: rgba(67, 178, 157, 0.11);
}
section.section-6 {
background-color: #0d242e !important;
background-repeat: repeat;
background-position: top center;
background-image: url("/images/bg/pattern-1.png"); }
background-image: url("/images/bg/pattern-1.png");
}
section.section-7 h2 {
position: relative;
z-index: 1; }
section.section-7 h2:before {
content: '';
position: absolute;
width: 70px;
height: 70px;
left: -15%;
top: -30%;
margin-left: -35px;
background-color: #fcc958;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 0; }
z-index: 1;
}
section.section-7 h2:before {
content: "";
position: absolute;
width: 70px;
height: 70px;
left: -15%;
top: -30%;
margin-left: -35px;
background-color: #fcc958;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 0;
}
section h2.title {
color: #0d242e; }
color: #0d242e;
}
section.big-text h2, section.big-text p, section.li-block h2, section.li-block p {
width: fit-content;
margin-left: auto;
margin-right: auto; }
margin-right: auto;
}
section.big-text .container .row > div:last-child {
width: 80%;
margin-left: 10%; }
margin-left: 10%;
}
section.li-block .container .row > div:last-child {
width: 100%; }
width: 100%;
}
section.li-block .container .row > div ul {
display: flex; }
section.li-block .container .row > div ul li {
flex: 1 0 0;
margin: 0.5em 2rem 0.5em 2rem;
padding: 2em 1em 1em 1em;
text-align: center;
border-radius: 20px; }
section.li-block .container .row > div ul li i:first-child {
display: none; }
display: flex;
}
section.li-block .container .row > div ul li i:first-child {
display: none;
}
section.li-block .container .row > div ul li {
flex: 1 0 0;
margin: 0.5em 2rem 0.5em 2rem;
padding: 2em 1em 1em 1em;
text-align: center;
border-radius: 20px;
}
section.li-block.section-1 ul li {
font-weight: 500;
font-size: large;
position: relative; }
section.li-block.section-1 ul li:nth-child(1) {
position: relative;
z-index: 1; }
section.li-block.section-1 ul li:nth-child(1):before {
content: '';
position: absolute;
width: 100px;
height: 100px;
left: 44%;
top: -60%;
margin-left: -35px;
background-color: #56c4aa;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 0; }
section.li-block.section-1 ul li:nth-child(2) {
position: relative;
z-index: 1; }
section.li-block.section-1 ul li:nth-child(2):before {
content: '';
position: absolute;
width: 100px;
height: 100px;
left: 44%;
top: -60%;
margin-left: -35px;
background-color: #f0384d;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 50px; }
section.li-block.section-1 ul li:nth-child(3) {
position: relative;
z-index: 1; }
section.li-block.section-1 ul li:nth-child(3):before {
content: '';
position: absolute;
width: 100px;
height: 100px;
left: 44%;
top: -60%;
margin-left: -35px;
background-color: #e89463;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 0; }
section.li-block.section-1 ul li:nth-child(4) {
position: relative;
z-index: 1; }
section.li-block.section-1 ul li:nth-child(4):before {
content: '';
position: absolute;
width: 100px;
height: 100px;
left: 44%;
top: -60%;
margin-left: -35px;
background-color: #fcc958;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 50px; }
position: relative;
}
section.li-block.section-1 ul li:nth-child(1) {
position: relative;
z-index: 1;
}
section.li-block.section-1 ul li:nth-child(1):before {
content: "";
position: absolute;
width: 100px;
height: 100px;
left: 44%;
top: -60%;
margin-left: -35px;
background-color: #56c4aa;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 0;
}
section.li-block.section-1 ul li:nth-child(2) {
position: relative;
z-index: 1;
}
section.li-block.section-1 ul li:nth-child(2):before {
content: "";
position: absolute;
width: 100px;
height: 100px;
left: 44%;
top: -60%;
margin-left: -35px;
background-color: #f0384d;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 50px;
}
section.li-block.section-1 ul li:nth-child(3) {
position: relative;
z-index: 1;
}
section.li-block.section-1 ul li:nth-child(3):before {
content: "";
position: absolute;
width: 100px;
height: 100px;
left: 44%;
top: -60%;
margin-left: -35px;
background-color: #e89463;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 0;
}
section.li-block.section-1 ul li:nth-child(4) {
position: relative;
z-index: 1;
}
section.li-block.section-1 ul li:nth-child(4):before {
content: "";
position: absolute;
width: 100px;
height: 100px;
left: 44%;
top: -60%;
margin-left: -35px;
background-color: #fcc958;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
z-index: 0;
border-radius: 50px;
}
section.li-block.section-5 .container .row p {
margin-bottom: 5rem; }
margin-bottom: 5rem;
}
section.li-block.section-5 .container .row ul li {
border-radius: 1em;
background: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(20px);
width: 400px;
height: 180px;
padding: .85rem;
padding: 0.85rem;
position: relative;
z-index: 0;
overflow: hidden;
transition: 0.6s ease-in; }
section.li-block.section-5 .container .row ul li::before {
content: "";
position: absolute;
z-index: -1;
top: -15px;
right: -15px;
height: 220px;
width: 25px;
border-radius: 32px;
transform: scale(1);
transform-origin: 50% 50%;
transition: transform 0.25s ease-out; }
section.li-block.section-5 .container .row ul li:nth-child(1)::before {
background-color: rgba(240, 56, 77, 0.85); }
section.li-block.section-5 .container .row ul li:nth-child(2)::before {
background-color: rgba(232, 148, 99, 0.85); }
section.li-block.section-5 .container .row ul li:nth-child(3)::before {
background-color: rgba(67, 178, 157, 0.85); }
section.li-block.section-5 .container .row ul li:nth-child(4)::before {
background-color: #f1d275; }
section.li-block.section-5 .container .row ul li:hover::before {
transition-delay: 0.2s;
transform: scale(40); }
section.li-block.section-5 .container .row ul li:hover {
color: #ffffff; }
section.li-block.section-5 .container .row ul li:hover h5 {
color: #efefef; }
section.li-block.section-5 .container .row ul li h5 {
color: #0d242e;
font-weight: bold; }
transition: 0.6s ease-in;
}
section.li-block.section-5 .container .row ul li::before {
content: "";
position: absolute;
z-index: -1;
top: -15px;
right: -15px;
height: 220px;
width: 25px;
border-radius: 32px;
transform: scale(1);
transform-origin: 50% 50%;
transition: transform 0.25s ease-out;
}
section.li-block.section-5 .container .row ul li:nth-child(1)::before {
background-color: rgba(240, 56, 77, 0.85);
}
section.li-block.section-5 .container .row ul li:nth-child(2)::before {
background-color: rgba(232, 148, 99, 0.85);
}
section.li-block.section-5 .container .row ul li:nth-child(3)::before {
background-color: rgba(67, 178, 157, 0.85);
}
section.li-block.section-5 .container .row ul li:nth-child(4)::before {
background-color: rgb(241, 210, 117);
}
section.li-block.section-5 .container .row ul li:hover::before {
transition-delay: 0.2s;
transform: scale(40);
}
section.li-block.section-5 .container .row ul li:hover {
color: #ffffff;
}
section.li-block.section-5 .container .row ul li:hover h5 {
color: #efefef;
}
section.li-block.section-5 .container .row ul li h5 {
color: #0d242e;
font-weight: bold;
}
section.li-block a.btn-chill {
background-color: #fc3636; }
background-color: #fc3636;
}
.download {
margin-right: auto;
margin-left: auto;
display: block; }
.download a {
text-decoration: none;
padding: .5rem; }
display: block;
}
.download a {
text-decoration: none;
padding: 0.5rem;
}
section.dark p {
color: white;
font-weight: bolder; }
font-weight: bolder;
}
.hop {
color: red; }
color: red;
}
.content-subtitle {
text-transform: uppercase;
padding-left: 2rem; }
padding-left: 2rem;
}
.bord-1 {
border-left: 4px solid #e89463; }
border-left: 4px solid #e89463;
}
.bord-2 {
border-left: 4px solid #d3c7b1; }
border-left: 4px solid #d3c7b1;
}
.bord-3 {
border-left: 4px solid #f1d275; }
border-left: 4px solid #f1d275;
}
.bord-4 {
border-left: 4px solid rgba(67, 178, 157, 0.61); }
border-left: 4px solid rgba(67, 178, 157, 0.61);
}
.chapo {
font-size: large;
@@ -278,128 +345,175 @@ section.dark p {
padding-bottom: 2rem;
font-style: italic;
position: relative;
margin-bottom: 5rem; }
.chapo::after {
content: '';
position: absolute;
left: 0;
right: 0;
top: 100%;
margin: 10px auto;
width: 15%;
height: 6px;
background: #dc516d; }
margin-bottom: 5rem;
}
.chapo::after {
content: "";
position: absolute;
left: 0;
right: 0;
top: 100%;
margin: 10px auto;
width: 15%;
height: 6px;
background: #dc516d;
}
figure.image {
display: flex;
flex-direction: column; }
figure.image.left {
float: left;
margin-right: 1.5em; }
figure.image.right {
float: right;
margin-left: 1.5em; }
figure.image.center {
display: flex;
justify-content: center;
align-items: center; }
figure.image img {
margin-bottom: 0; }
flex-direction: column;
}
figure.image.left {
float: left;
margin-right: 1.5em;
}
figure.image.right {
float: right;
margin-left: 1.5em;
}
figure.image.center {
display: flex;
justify-content: center;
align-items: center;
}
figure.image img {
margin-bottom: 0;
}
.text-brochure {
text-align: center; }
text-align: center;
}
@media screen and (max-width: 1279px) {
section.li-block.section-5 .container .row ul {
flex-wrap: wrap; }
flex-wrap: wrap;
}
section.li-block.section-5 .container .row ul li {
flex: 30%; } }
flex: 30%;
}
}
@media screen and (max-width: 1023px) {
section.section-4 h4 {
height: 224px; }
height: 224px;
}
section.section-4 .btn-primary {
top: 56%; }
top: 56%;
}
section.li-block.section-5 .container .row ul {
flex-wrap: wrap; }
flex-wrap: wrap;
}
section.li-block.section-5 .container .row ul li {
flex: 50%; } }
flex: 50%;
}
}
@media screen and (max-width: 767px) {
section.hero {
height: 110vh; }
height: 110vh;
}
section.section-3 h2:before {
top: -70%;
left: 5%;
z-index: -1; }
z-index: -1;
}
section.section-4 h4 {
height: 280px; }
height: 280px;
}
section.section-4 .btn-primary {
top: 64%; }
top: 64%;
}
section.li-block .container .row > div ul {
flex-direction: column; }
section.li-block .container .row > div ul li {
margin-bottom: 4rem; }
flex-direction: column;
}
section.li-block .container .row > div ul li {
margin-bottom: 4rem;
}
section.li-block.section-1 ul li:nth-child(1) {
top: -66%; }
top: -66%;
}
section.li-block.section-1 ul li:nth-child(2) {
top: -66%; }
top: -66%;
}
section.li-block.section-1 ul li:nth-child(3):before {
top: -85%; }
top: -85%;
}
section.li-block.section-1 ul li:nth-child(4):before {
top: -85%; }
top: -85%;
}
section.li-block.section-5 .container .row ul {
flex-wrap: wrap; }
flex-wrap: wrap;
}
section.li-block.section-5 .container .row ul li {
flex: 50%; } }
flex: 50%;
}
}
@media screen and (max-width: 513px) {
section.hero {
height: 120vh; }
height: 120vh;
}
section.section-4 h4 {
font-size: 1.1rem; }
font-size: 1.1rem;
}
section.section-4 .btn-primary {
top: 64%; }
top: 64%;
}
section.section-5 .container .row ul li {
width: 350px; } }
width: 350px;
}
}
@media screen and (max-width: 470px) {
section.section-4 h4 {
height: 280px; }
height: 280px;
}
section.section-4 .btn-primary {
top: 64%; }
top: 64%;
}
section.li-block.section-1 ul li:nth-child(3):before {
top: -70%; }
top: -70%;
}
section.li-block.section-1 ul li:nth-child(4):before {
top: -70%; }
top: -70%;
}
section.li-block.section-5 .container .row ul {
flex-wrap: wrap; }
flex-wrap: wrap;
}
section.li-block.section-5 .container .row ul li {
width: 350px; } }
width: 350px;
}
}
@media screen and (max-width: 420px) {
section.li-block.section-5 .container .row ul li {
width: 300px; } }
width: 300px;
}
}
.badge-chill-blue {
--badge-color: #334d5c; }
--badge-color: #334d5c;
}
.badge-chill-green {
--badge-color: rgba(67, 178, 157, 0.61); }
--badge-color: rgba(67, 178, 157, 0.61);
}
.badge-chill-beige {
--badge-color: #d3c7b1; }
--badge-color: #d3c7b1;
}
.badge-chill-red {
--badge-color: #dc516d; }
--badge-color: #dc516d;
}
.badge-chill-pink {
--badge-color: #e57469; }
--badge-color: #e57469;
}
.badge-chill-orange {
--badge-color: #e89463; }
--badge-color: #e89463;
}
.badge-chill-lightgray {
--badge-color: #efefef; }
--badge-color: #efefef;
}
.badge-chill-yellow {
--badge-color: #f1d275; }
--badge-color: #f1d275;
}
/*# sourceMappingURL=custom.css.map */

File diff suppressed because one or more lines are too long

View File

@@ -154,7 +154,7 @@ html,
-o-tab-size: 4;
tab-size: 4;
/* 3 */
font-family: Lato, sans-serif;
font-family: Inter, system-ui, sans-serif;
/* 4 */
font-feature-settings: normal;
/* 5 */
@@ -754,7 +754,7 @@ html {
}
body {
font-family: Lato, sans-serif;
font-family: Inter, system-ui, sans-serif;
--tw-text-opacity: 1;
color: rgb(55 65 81 / var(--tw-text-opacity, 1));
-webkit-font-smoothing: antialiased;
@@ -2024,7 +2024,7 @@ body {
.prose a {
--tw-text-opacity: 1;
color: rgb(244 104 57 / var(--tw-text-opacity, 1));
color: rgb(189 55 10 / var(--tw-text-opacity, 1));
text-decoration-line: none;
}
@@ -2240,10 +2240,6 @@ body {
margin-top: 0px !important;
}
.-mt-2 {
margin-top: -0.5rem;
}
.mb-1 {
margin-bottom: 0.25rem;
}
@@ -2328,6 +2324,10 @@ body {
margin-top: 2rem;
}
.mt-auto {
margin-top: auto;
}
.line-clamp-2 {
overflow: hidden;
display: -webkit-box;
@@ -2834,18 +2834,18 @@ body {
}
.bg-primary-100 {
--tw-bg-opacity: 1;
background-color: rgb(252 215 202 / var(--tw-bg-opacity, 1));
}
.bg-primary-400 {
--tw-bg-opacity: 1;
background-color: rgb(244 104 57 / var(--tw-bg-opacity, 1));
}
.bg-primary-50 {
--tw-bg-opacity: 1;
background-color: rgb(244 104 57 / var(--tw-bg-opacity, 1));
}
.bg-primary-600 {
--tw-bg-opacity: 1;
background-color: rgb(244 104 57 / var(--tw-bg-opacity, 1));
background-color: rgb(255 251 250 / var(--tw-bg-opacity, 1));
}
.bg-red-500 {
@@ -2854,7 +2854,12 @@ body {
}
.bg-secondary-100 {
background-color: rgba(67, 178, 157, 0.61);
--tw-bg-opacity: 1;
background-color: rgb(142 198 223 / var(--tw-bg-opacity, 1));
}
.bg-transparent {
background-color: transparent;
}
.bg-white {
@@ -2891,8 +2896,8 @@ body {
}
.from-primary-600 {
--tw-gradient-from: #f46839 var(--tw-gradient-from-position);
--tw-gradient-to: rgb(244 104 57 / 0) var(--tw-gradient-to-position);
--tw-gradient-from: #bd370a var(--tw-gradient-from-position);
--tw-gradient-to: rgb(189 55 10 / 0) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
@@ -2902,7 +2907,7 @@ body {
}
.to-primary-700 {
--tw-gradient-to: #f46839 var(--tw-gradient-to-position);
--tw-gradient-to: #8c2908 var(--tw-gradient-to-position);
}
.to-white {
@@ -3243,12 +3248,17 @@ body {
.text-primary-100 {
--tw-text-opacity: 1;
color: rgb(244 104 57 / var(--tw-text-opacity, 1));
color: rgb(252 215 202 / var(--tw-text-opacity, 1));
}
.text-primary-500 {
--tw-text-opacity: 1;
color: rgb(237 69 13 / var(--tw-text-opacity, 1));
}
.text-primary-600 {
--tw-text-opacity: 1;
color: rgb(244 104 57 / var(--tw-text-opacity, 1));
color: rgb(189 55 10 / var(--tw-text-opacity, 1));
}
.text-white {
@@ -4002,7 +4012,7 @@ body {
.sm\:prose a {
--tw-text-opacity: 1;
color: rgb(244 104 57 / var(--tw-text-opacity, 1));
color: rgb(189 55 10 / var(--tw-text-opacity, 1));
text-decoration-line: none;
}
@@ -4320,7 +4330,7 @@ body {
.hover\:border-primary-600:hover {
--tw-border-opacity: 1;
border-color: rgb(244 104 57 / var(--tw-border-opacity, 1));
border-color: rgb(189 55 10 / var(--tw-border-opacity, 1));
}
.hover\:bg-gray-100:hover {
@@ -4340,12 +4350,12 @@ body {
.hover\:bg-primary-100:hover {
--tw-bg-opacity: 1;
background-color: rgb(244 104 57 / var(--tw-bg-opacity, 1));
background-color: rgb(252 215 202 / var(--tw-bg-opacity, 1));
}
.hover\:bg-primary-700:hover {
--tw-bg-opacity: 1;
background-color: rgb(244 104 57 / var(--tw-bg-opacity, 1));
background-color: rgb(140 41 8 / var(--tw-bg-opacity, 1));
}
.hover\:text-gray-900:hover {
@@ -4355,12 +4365,12 @@ body {
.hover\:text-primary-600:hover {
--tw-text-opacity: 1;
color: rgb(244 104 57 / var(--tw-text-opacity, 1));
color: rgb(189 55 10 / var(--tw-text-opacity, 1));
}
.hover\:text-primary-700:hover {
--tw-text-opacity: 1;
color: rgb(244 104 57 / var(--tw-text-opacity, 1));
color: rgb(140 41 8 / var(--tw-text-opacity, 1));
}
.hover\:opacity-90:hover {
@@ -4392,7 +4402,7 @@ body {
.focus\:border-primary-500:focus {
--tw-border-opacity: 1;
border-color: rgb(244 104 57 / var(--tw-border-opacity, 1));
border-color: rgb(237 69 13 / var(--tw-border-opacity, 1));
}
.focus\:outline-none:focus {
@@ -4408,12 +4418,12 @@ body {
.focus\:ring-primary-500:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(244 104 57 / var(--tw-ring-opacity, 1));
--tw-ring-color: rgb(237 69 13 / var(--tw-ring-opacity, 1));
}
.focus\:ring-primary-600:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(244 104 57 / var(--tw-ring-opacity, 1));
--tw-ring-color: rgb(189 55 10 / var(--tw-ring-opacity, 1));
}
.focus\:ring-offset-2:focus {
@@ -4432,22 +4442,22 @@ body {
.group:hover .group-hover\:border-primary-100 {
--tw-border-opacity: 1;
border-color: rgb(244 104 57 / var(--tw-border-opacity, 1));
border-color: rgb(252 215 202 / var(--tw-border-opacity, 1));
}
.group:hover .group-hover\:bg-primary-100 {
--tw-bg-opacity: 1;
background-color: rgb(244 104 57 / var(--tw-bg-opacity, 1));
background-color: rgb(252 215 202 / var(--tw-bg-opacity, 1));
}
.group:hover .group-hover\:text-primary-600 {
--tw-text-opacity: 1;
color: rgb(244 104 57 / var(--tw-text-opacity, 1));
color: rgb(189 55 10 / var(--tw-text-opacity, 1));
}
.group:hover .group-hover\:text-primary-700 {
--tw-text-opacity: 1;
color: rgb(244 104 57 / var(--tw-text-opacity, 1));
color: rgb(140 41 8 / var(--tw-text-opacity, 1));
}
.group:hover .group-hover\:opacity-100 {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1020 B

View File

@@ -1,47 +1,9 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
presets: [require('./themes/chill-theme/tailwind.config.js')],
content: [
"./themes/chill-theme/layouts/**/*.html",
"./layouts/**/*.html",
"./content/**/*.{html,md}"
],
theme: {
extend: {
colors: {
primary: {
50: '#f46839',
100: '#f46839',
200: '#f46839',
300: '#f46839',
400: '#f46839',
500: '#f46839',
600: '#f46839',
700: '#f46839',
800: '#f46839',
900: '#f46839',
},
secondary: {
50: 'rgba(67, 178, 157, 0.61)',
100: 'rgba(67, 178, 157, 0.61)',
200: 'rgba(67, 178, 157, 0.61)',
300: 'rgba(67, 178, 157, 0.61)',
400: 'rgba(67, 178, 157, 0.61)',
500: 'rgba(67, 178, 157, 0.61)',
600: 'rgba(67, 178, 157, 0.61)',
700: 'rgba(67, 178, 157, 0.61)',
800: 'rgba(67, 178, 157, 0.61)',
900: 'rgba(67, 178, 157, 0.61)',
},
},
fontFamily: {
sans: ['Lato', 'sans-serif'],
},
},
plugins: [
require('@tailwindcss/forms'),
require('@tailwindcss/typography'),
],
}
presets: [require('./themes/chill-theme/tailwind.config.js')],
content: [
"./themes/chill-theme/layouts/**/*.html",
"./layouts/**/*.html",
"./content/**/*.{html,md}"
]
// Ne redéfinis pas theme.colors ici !
}

View File

@@ -40,15 +40,15 @@
}
.btn-primary {
@apply btn bg-primary-600 text-white hover:bg-primary-700 hover:scale-105;
@apply btn bg-primary-400 text-white hover:bg-primary-400 hover:scale-105;
}
.btn-secondary {
@apply btn bg-secondary-600 text-white hover:bg-secondary-700 hover:scale-105;
@apply btn bg-secondary-400 text-white hover:bg-secondary-700 hover:scale-105;
}
.btn-outline {
@apply btn border-2 border-primary-600 text-primary-600 hover:scale-105;
@apply btn border-2 border-primary-400 text-primary-400 hover:scale-105;
}
.container {
@@ -146,7 +146,7 @@
}
.prose a {
@apply text-primary-600 hover:text-primary-700 no-underline;
@apply text-primary-600 hover:text-primary-400 no-underline;
}
.prose ul, .prose ol {
@@ -187,12 +187,12 @@
}
.features-carousel__nav { margin-bottom: 1rem; text-align: center; }
.features-carousel__nav button {
@apply btn text-gray-900 hover:text-primary-700;
@apply btn text-gray-900 hover:text-primary-400;
max-height:40px;
}
.features-carousel__nav button.active {
@apply btn bg-primary-600 text-white hover:bg-primary-700 hover:scale-105;
@apply btn bg-primary-400 text-white hover:bg-primary-400 hover:scale-105;
}
.features-carousel__slides { min-height: 150px; }

View File

@@ -1,154 +0,0 @@
# English translations for Hugo Saasify Theme
# Copy this file to your site's i18n directory and customize as needed
# Common UI translations
[readMore]
other = "Read More"
[readTime]
other = "min read"
[published]
other = "Published"
[updated]
other = "Updated"
[by]
other = "by"
[shareOn]
other = "Share on"
[relatedPosts]
other = "Related Posts"
[categories]
other = "Categories"
[tags]
other = "Tags"
[allPosts]
other = "All Posts"
[search]
other = "Search"
[searchPlaceholder]
other = "Search articles..."
[noResults]
other = "No results found"
[backToHome]
other = "Back to Home"
[404Title]
other = "Page Not Found"
[404Message]
other = "The page you are looking for doesn't exist or has been moved."
# Navigation
[home]
other = "Home"
[about]
other = "About"
[contact]
other = "Contact"
# Blog
[latestPosts]
other = "Latest Posts"
[recentArticles]
other = "Recent Articles"
[popularTags]
other = "Popular Tags"
[subscribeNewsletter]
other = "Subscribe to Newsletter"
[subscribeDescription]
other = "Get the latest posts delivered right to your inbox"
[emailPlaceholder]
other = "Enter your email"
[subscribe]
other = "Subscribe"
[subscribeDisclaimer]
other = "We respect your privacy. Unsubscribe at any time."
# Footer
[copyright]
other = "© {{ .Year }} {{ .SiteName }}. All rights reserved."
[builtWith]
other = "Built with"
[and]
other = "and"
# Language switcher
[language]
other = "Language"
[switchLanguage]
other = "Switch Language"
# Features
[seeItInAction]
other = "See it in action"
# Pricing
[popular]
other = "Popular"
[mostPopular]
other = "Most Popular"
[perMonth]
other = "/month"
# Documentation
[documentation]
other = "Documentation"
# Pagination
[previous]
other = "Previous"
[next]
other = "Next"
# Homepage
[trustedByCompanies]
other = "Trusted by leading companies worldwide"
[lovedByTeams]
other = "Loved by Teams Worldwide"
[testimonialsDescription]
other = "See what our customers have to say about their experience with our platform."
# Blog Post
[tableOfContents]
other = "Table of Contents"
[minRead]
other = "min read"
[previousPost]
other = "Previous Post"
[nextPost]
other = "Next Post"
[dateFormat]
other = "January 2, 2006"

View File

@@ -1,4 +1,116 @@
[discoverFeature]
other = "Découvrir"
# Traductions françaises pour les shortcodes pricing
# English translations for Hugo Saasify Theme
# Copy this file to your site's i18n directory and customize as needed
# Common UI translations
[readMore]
other = "Lire la suite"
[readTime]
other = "min de lecture"
[published]
other = "Publié"
[updated]
other = "Mis à jour"
[by]
other = "par"
[shareOn]
other = "Partager sur"
[relatedPosts]
other = "Articles liés"
[categories]
other = "Catégories"
[tags]
other = "Étiquettes"
[allPosts]
other = "Tous les articles"
[search]
other = "Recherche"
[searchPlaceholder]
other = "Rechercher des articles..."
[noResults]
other = "Aucun résultat trouvé"
[backToHome]
other = "Retour à l'accueil"
[404Title]
other = "Page non trouvée"
[404Message]
other = "La page que vous recherchez n'existe pas ou a été déplacée."
# Navigation
[home]
other = "Accueil"
[about]
other = "À propos"
[contact]
other = "Contact"
# Blog
[latestPosts]
other = "Derniers articles"
[recentArticles]
other = "Articles récents"
[popularTags]
other = "Étiquettes populaires"
[subscribeNewsletter]
other = "S'abonner à la newsletter"
[subscribeDescription]
other = "Recevez les derniers articles directement dans votre boîte mail"
[emailPlaceholder]
other = "Entrez votre email"
[subscribe]
other = "S'abonner"
[subscribeDisclaimer]
other = "Nous respectons votre vie privée. Vous pouvez vous désabonner à tout moment."
# Footer
[copyright]
other = "© {{ .Year }} {{ .SiteName }}. Tous droits réservés."
[builtWith]
other = "Construit avec"
[and]
other = "et"
# Language switcher
[language]
other = "Langue"
[switchLanguage]
other = "Changer de langue"
# Features
[seeItInAction]
other = "Voir en action"
# Pricing
[popular]
other = "Populaire"
@@ -6,7 +118,6 @@ other = "Populaire"
[mostPopular]
other = "Le plus populaire"
[perVATHour]
other = "HT/heure"
@@ -17,4 +128,48 @@ other = "HT/jour"
other = "HT/mois"
[perVATYear]
other = "HT/an"
other = "HT/an"
[perMonth]
other = "/mois"
# Documentation
[documentation]
other = "Documentation"
# Pagination
[previous]
other = "Précédent"
[next]
other = "Suivant"
# Homepage
[trustedByCompanies]
other = "Approuvé par les principales entreprises du monde entier"
[lovedByTeams]
other = "Apprécié par les équipes du monde entier"
[testimonialsDescription]
other = "Découvrez ce que nos clients pensent de leur expérience avec notre plateforme."
# Blog Post
[tableOfContents]
other = "Table des matières"
[minRead]
other = "min de lecture"
[previousPost]
other = "Article précédent"
[nextPost]
other = "Article suivant"
[dateFormat]
other = "2 janvier 2006"
# Features
[features]
other = "Fonctionnalités"

View File

@@ -1,10 +0,0 @@
# Nederlandse vertalingen voor pricing shortcodes
[popular]
other = "Populair"
[mostPopular]
other = "Meest populair"
[perMonth]
other = "/maand"

View File

@@ -22,7 +22,7 @@
{{ range .values }}
<div class="flex items-start">
<div class="flex-shrink-0">
<div class="flex items-center justify-center h-12 w-12 rounded-md bg-primary-600 text-white">
<div class="flex items-center justify-center h-12 w-12 rounded-md bg-primary-400 text-white">
{{ .icon }}
</div>
</div>

View File

@@ -27,7 +27,7 @@
<nav class="mt-12 flex justify-between items-center">
{{ if $paginator.HasPrev }}
<a href="{{ $paginator.Prev.URL }}"
class="inline-flex items-center px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200">
class="inline-flex items-center px-4 py-2 bg-primary-400 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200">
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"></path>
</svg>
@@ -40,7 +40,7 @@
<div class="flex space-x-2">
{{ range $paginator.Pagers }}
{{ if eq . $paginator }}
<span class="px-4 py-2 bg-primary-600 text-white rounded-lg">
<span class="px-4 py-2 bg-primary-400 text-white rounded-lg">
{{ .PageNumber }}
</span>
{{ else }}
@@ -54,7 +54,7 @@
{{ if $paginator.HasNext }}
<a href="{{ $paginator.Next.URL }}"
class="inline-flex items-center px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200">
class="inline-flex items-center px-4 py-2 bg-primary-400 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200">
{{ i18n "next" }}
<svg class="w-5 h-5 ml-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3"></path>

View File

@@ -1,20 +0,0 @@
{{ define "main" }}
<div class="pt-2">
<div class="container mx-auto px-4 py-6">
<div class="flex flex-col md:flex-row gap-6 items-start">
<!-- Sidebar -->
<div class="w-full md:w-1/4 lg:w-1/5 pt-1">
{{ partial "docs-sidebar.html" . }}
</div>
<!-- Main Content -->
<main class="w-full md:w-3/4 lg:w-4/5 pt-2">
<article class="prose max-w-none -mt-2 pt-6">
{{ .Content }}
</article>
</main>
</div>
</div>
</div>
{{ end }}

View File

@@ -0,0 +1,79 @@
{{ define "main" }}
<div class="pt-2">
<div class="container mx-auto px-4 py-6">
<div class="flex flex-col md:flex-row gap-6 items-start">
<!-- Sidebar -->
<div class="w-full md:w-1/4 lg:w-1/5 pt-1">
{{ partial "features-sidebar.html" . }}
</div>
<!-- Main Content -->
<main class="w-full md:w-3/4 lg:w-4/5 pt-2">
<article class="feature-page">
<h1 class="text-4xl font-bold text-center mb-5">{{ .Title }}</h1>
{{ with .Params.description }}
<p class="text-center font-light text-gray-500 sm:text-xl">{{ . }}</p>
{{ end }}
<!-- Main Content -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
{{ $paginator := .Paginate (.Pages.ByWeight) }}
{{ range $paginator.Pages }}
{{ partial "feature-card.html" . }}
{{ end }}
</div>
{{ $paginator := .Paginate .Pages }}
{{ if gt $paginator.TotalPages 1 }}
<nav class="mt-12 flex justify-between items-center">
{{ if $paginator.HasPrev }}
<a href="{{ $paginator.Prev.URL }}"
class="inline-flex items-center px-4 py-2 bg-primary-400 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200">
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"></path>
</svg>
{{ i18n "previous" }}
</a>
{{ else }}
<div></div>
{{ end }}
<div class="flex space-x-2">
{{ range $paginator.Pagers }}
{{ if eq . $paginator }}
<span class="px-4 py-2 bg-primary-400 text-white rounded-lg">
{{ .PageNumber }}
</span>
{{ else }}
<a href="{{ .URL }}"
class="px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors duration-200">
{{ .PageNumber }}
</a>
{{ end }}
{{ end }}
</div>
{{ if $paginator.HasNext }}
<a href="{{ $paginator.Next.URL }}"
class="inline-flex items-center px-4 py-2 bg-primary-400 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200">
{{ i18n "next" }}
<svg class="w-5 h-5 ml-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3"></path>
</svg>
</a>
{{ else }}
<div></div>
{{ end }}
</nav>
{{ end }}
<!-- Global CTA -->
{{ partial "components/cta.html" . }}
</article>
</main>
</div>
</div>
</div>
{{ end }}

View File

@@ -0,0 +1,93 @@
{{ define "main" }}
<div class="pt-2 feature-page badge-{{ .Params.badgeColor }}">
<style>
.badge {
background-color: color-mix(in srgb, var(--badge-color) 30%, transparent);
color: #222;
}
.gradient-bg {
background-image: linear-gradient(180deg, color-mix(in srgb, var(--badge-color) 15%, white), white);
}
</style>
<div class="absolute inset-x-0 top-0 h-96 gradient-bg opacity-75"></div>
<div class="container mx-auto px-4 py-6">
<div class="flex flex-col md:flex-row gap-6 items-start">
<!-- Sidebar -->
<div class="w-full md:w-1/4 lg:w-1/5 pt-1">
{{ partial "features-sidebar.html" . }}
</div>
<!-- Main Content -->
<main class="w-full md:w-3/4 lg:w-4/5 pt-2">
<article >
<!-- Hero Section -->
<div class="relative isolate overflow-hidden">
<div class="relative pt-16 pb-16 ">
<div class="mx-auto max-w-7xl px-6 lg:px-8">
<div class="mx-auto max-w-2xl text-center">
{{ with .Params.badge }}
<div class="mb-6">
<span class="badge inline-flex items-center rounded-full px-4 py-1.5 text-sm font-medium">
{{ . }}
</span>
</div>
{{ end }}
<h1 class="text-4xl font-bold tracking-tight text-gray-900 sm:text-6xl">{{ .Title }}</h1>
<p class="mt-6 text-lg leading-8 text-gray-600">{{ .Description }}</p>
</div>
</div>
</div>
</div>
<!-- Main Content -->
<div class="mx-auto max-w-7xl px-6 lg:px-8">
<!-- Key Features Grid -->
{{ if .Params.features }}
<div class="mx-auto mt-16 max-w-2xl sm:mt-20 lg:mt-24 lg:max-w-none">
<div class="grid max-w-xl grid-cols-1 gap-x-8 gap-y-16 lg:max-w-none lg:grid-cols-2 xl:grid-cols-4">
{{ range .Params.features }}
<div class="flex flex-col bg-white rounded-2xl shadow-sm ring-1 ring-gray-200 p-8">
<dt class="text-lg font-semibold leading-7 text-gray-900">
{{ .title }}
</dt>
<dd class="mt-4 flex flex-auto flex-col text-base leading-7 text-gray-600">
<p class="flex-auto">{{ .description }}</p>
</dd>
</div>
{{ end }}
</div>
</div>
{{ end }}
<!-- Content Section -->
<div class="prose prose-lg mx-auto mt-16 pb-24">
{{ .Content }}
</div>
<!-- Demo Section -->
{{ if .Params.demo }}
<div class="bg-gray-50 -mx-6 px-6 py-24 sm:py-32">
<div class="mx-auto max-w-2xl lg:text-center">
<h2 class="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">{{ i18n "seeItInAction" }}</h2>
<p class="mt-6 text-lg leading-8 text-gray-600">{{ .Params.demo.description }}</p>
</div>
<div class="mt-16 flex justify-center">
<div class="relative rounded-xl bg-white p-8 shadow-2xl ring-1 ring-gray-200">
<img src="{{ .Params.demo.image }}" alt="Demo" class="rounded-lg">
</div>
</div>
</div>
{{ end }}
</div>
<!-- Global CTA -->
{{ partial "components/cta.html" . }}
</article>
</main>
</div>
</div>
</div>
{{ end }}

View File

@@ -4,7 +4,7 @@
{{ $angle := .Site.Params.cta.gradient_angle | default 45 }}
{{ $from := .Site.Params.cta.gradient_from }}
{{ $to := .Site.Params.cta.gradient_to }}
<div class="relative rounded-lg overflow-hidden bg-primary-600 cta-gradient"
<div class="relative rounded-lg overflow-hidden bg-primary-400 cta-gradient"
style="--gradient-angle: {{ $angle }}; --gradient-from: {{ $from }}; --gradient-to: {{ $to }}">
<div class="relative text-center max-w-3xl mx-auto px-6 py-10">
<h2 class="text-3xl md:text-4xl font-bold text-white mb-6">{{ .Site.Params.cta.title }}</h2>

View File

@@ -0,0 +1,86 @@
<div class="docs-sidebar bg-white shadow-sm rounded-lg p-4 sticky top-20 mt-2">
<h3 class="text-lg font-semibold text-gray-900 mb-3 mt-1">{{ i18n "documentation" }}</h3>
<nav class="docs-nav">
<ul class="space-y-1">
{{/* Get all docs pages */}}
{{ $docsPages := where .Site.Pages "Section" "docs" }}
{{ $docsPages = where $docsPages ".IsHome" false }}
{{/* Build list of all section directories to check against */}}
{{ $sectionDirs := slice }}
{{ range $docsPages }}
{{ if eq .Kind "section" }}
{{ $sectionDirs = $sectionDirs | append .File.Dir }}
{{ end }}
{{ end }}
{{/* Build top-level items: pages directly in docs/ AND first-level sections */}}
{{ $topLevel := slice }}
{{ range $docsPages }}
{{ $dir := .File.Dir }}
{{/* For sections: include if NOT the root "docs/" section */}}
{{ if eq .Kind "section" }}
{{ if ne $dir "docs/" }}
{{/* This is a first-level section like "concepts/", "react/", "backend/" */}}
{{ $topLevel = $topLevel | append . }}
{{ end }}
{{ else if eq .Kind "page" }}
{{/* For pages: only include if Dir is exactly "docs/" (top-level pages) */}}
{{ if eq $dir "docs/" }}
{{ $topLevel = $topLevel | append . }}
{{ end }}
{{ end }}
{{ end }}
{{/* Display top-level items sorted by weight */}}
{{ range sort $topLevel "Weight" }}
{{ if .Title }}
<li>
<a href="{{ .RelPermalink }}"
class="block px-4 py-2 rounded-md transition-colors duration-200
{{ if eq .RelPermalink $.RelPermalink }}
bg-indigo-50 text-indigo-600 font-medium
{{ else }}
text-gray-700 hover:bg-gray-50 hover:text-gray-900
{{ end }}">
{{ .Title }}
</a>
{{/* If this is a section, show its children */}}
{{ if eq .Kind "section" }}
{{ $sectionDir := .File.Dir }}
{{ $children := slice }}
{{/* Find child pages in this section (same directory, but .Kind is "page" not "section") */}}
{{ range $docsPages }}
{{ if and (eq .Kind "page") (eq .File.Dir $sectionDir) }}
{{ $children = $children | append . }}
{{ end }}
{{ end }}
{{/* Display children if any exist */}}
{{ if $children }}
<ul class="ml-4 mt-1 space-y-1">
{{ range sort $children "Weight" }}
<li>
<a href="{{ .RelPermalink }}"
class="block px-3 py-1.5 text-sm rounded-md transition-colors duration-200
{{ if eq .RelPermalink $.RelPermalink }}
bg-indigo-50 text-indigo-600 font-medium
{{ else }}
text-gray-600 hover:bg-gray-50 hover:text-gray-900
{{ end }}">
{{ .Title }}
</a>
</li>
{{ end }}
</ul>
{{ end }}
{{ end }}
</li>
{{ end }}
{{ end }}
</ul>
</nav>
</div>

View File

@@ -34,7 +34,7 @@
<button
type="submit"
class="w-full px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200"
class="w-full px-4 py-2 bg-primary-400 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200"
>
{{ if .buttonText }}{{ .buttonText }}{{ else }}{{ if eq $lang "zh-cn" }}订阅{{ else }}Subscribe{{ end }}{{ end }}
</button>

View File

@@ -0,0 +1,62 @@
<article class="bg-transparent rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300 badge-{{ .Params.badgeColor }} flex flex-col h-full">
<!-- Badge couleur -->
{{ with .Params.badge }}
<style>
.badge {
background-color: color-mix(in srgb, var(--badge-color) 30%, transparent);
color: #222;
}
.badge-icon {
color: var(--badge-color);
}
</style>
<div class="px-6 pt-6">
<div class="badge inline-block px-4 py-2 rounded-full font-medium">{{ . }}</div>
</div>
{{ end }}
{{ with .Params.featured_image }}
<a href="{{ $.RelPermalink }}" class="block aspect-w-16 aspect-h-9 overflow-hidden">
<img
src="{{ . }}"
alt="{{ $.Title }}"
class="object-cover w-full h-full transform hover:scale-105 transition-transform duration-300"
loading="lazy"
>
</a>
{{ end }}
<div class="p-6 pt-2 flex flex-col h-full">
<!-- Title -->
<h2 class="text-2xl font-bold mb-3 hover:text-primary-600 transition-colors duration-200">
<a href="{{ .RelPermalink }}">{{ .Title }}</a>
</h2>
<!-- Description -->
<p class="text-gray-600 mb-4 line-clamp-2">
{{ with .Description }}
{{ . }}
{{ else }}
{{ .Summary | truncate 160 }}
{{ end }}
</p>
<!-- Read More link and Reading Time -->
<div class="flex justify-between items-center mt-auto">
<!-- Reading Time -->
<span class="text-sm text-gray-500 flex items-center">
</span>
<a href="{{ .RelPermalink }}"
class="inline-flex items-center text-primary-600 hover:text-primary-700 font-medium">
{{ i18n "discoverFeature" }}
<svg class="w-4 h-4 ml-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3"></path>
</svg>
</a>
</div>
</div>
</article>

View File

@@ -1,14 +1,14 @@
<div class="docs-sidebar bg-white shadow-sm rounded-lg p-4 sticky top-20 mt-2">
<h3 class="text-lg font-semibold text-gray-900 mb-3 mt-1">{{ i18n "documentation" }}</h3>
<div class="docs-sidebar bg-transparent shadow-sm rounded-lg p-4 sticky top-20 mt-2">
<h3 class="text-lg font-semibold mb-3 mt-1">{{ i18n "features" }}</h3>
<nav class="docs-nav">
<ul class="space-y-1">
{{ range (where .Site.Pages "Section" "docs").ByWeight }}
{{ range (where .Site.Pages "Section" .Section).ByWeight }}
{{ if and .Title (not .IsHome) (ne .Kind "section") }}
<li>
<a href="{{ .RelPermalink }}"
class="block px-4 py-2 rounded-md transition-colors duration-200
{{ if eq .RelPermalink $.RelPermalink }}
bg-indigo-50 text-indigo-600 font-medium
bg-primary-100 text-primary-500 font-medium
{{ else }}
text-gray-700 hover:bg-gray-50 hover:text-gray-900
{{ end }}">

View File

@@ -55,7 +55,7 @@
{{ end }}
{{ with $headerConfig.buttons.getStarted }}
<a href="{{ .url | default "#" }}" class="{{ with .class }}{{ . }}{{ else }}inline-flex items-center justify-center px-6 py-3 rounded-lg font-bold transition duration-200 ease-in-out bg-primary-600 text-white hover:bg-primary-700 hover:scale-105{{ end }}">
<a href="{{ .url | default "#" }}" class="{{ with .class }}{{ . }}{{ else }}inline-flex items-center justify-center px-6 py-3 rounded-lg font-bold transition duration-200 ease-in-out bg-primary-400 text-white hover:bg-primary-700 hover:scale-105{{ end }}">
{{ .text | default "Get Started" }}
</a>
{{ end }}
@@ -117,7 +117,7 @@
{{ end }}
{{ with $headerConfig.buttons.getStarted }}
<a href="{{ .url | default "#" }}" class="{{ with .mobileClass }}{{ . }}{{ else }}block text-center px-6 py-3 rounded-lg font-bold transition duration-200 ease-in-out bg-primary-600 text-white hover:bg-primary-700 hover:scale-105{{ end }}">
<a href="{{ .url | default "#" }}" class="{{ with .mobileClass }}{{ . }}{{ else }}block text-center px-6 py-3 rounded-lg font-bold transition duration-200 ease-in-out bg-primary-400 text-white hover:bg-primary-700 hover:scale-105{{ end }}">
{{ .text | default "Get Started" }}
</a>
{{ end }}

View File

@@ -12,7 +12,7 @@
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
{{ range $index, $plan := $data.plans }}
<div class="relative flex flex-col p-6 {{ if $plan.featured }}bg-primary-600 text-white{{ else }}bg-white{{ end }} rounded-2xl shadow-xl transform hover:-translate-y-1 transition duration-300">
<div class="relative flex flex-col p-6 {{ if $plan.featured }}bg-primary-400 text-white{{ else }}bg-white{{ end }} rounded-2xl shadow-xl transform hover:-translate-y-1 transition duration-300">
{{ if $plan.featured }}
<div class="absolute -top-4 left-1/2 transform -translate-x-1/2">
<span class="bg-yellow-400 text-gray-900 text-xs font-semibold px-4 py-1 rounded-full">{{ i18n "mostPopular" }}</span>
@@ -50,7 +50,7 @@
{{ with .additional_description }}
<div class="text-sm text-gray-500">{{ . }}</div>
{{ end }}
<a href="{{ $plan.button.url }}" class="mt-4 text-center w-full px-5 py-3 rounded-lg {{ if $plan.featured }}bg-white text-primary-600 hover:bg-gray-100{{ else }}bg-primary-600 text-white hover:bg-primary-700{{ end }} font-medium transition duration-300">
<a href="{{ $plan.button.url }}" class="mt-4 text-center w-full px-5 py-3 rounded-lg {{ if $plan.featured }}bg-white text-primary-600 hover:bg-gray-100{{ else }}bg-primary-400 text-white hover:bg-primary-700{{ end }} font-medium transition duration-300">
{{ $plan.button.text }}
</a>
</div>

View File

@@ -27,7 +27,7 @@
<nav class="mt-12 flex justify-between items-center">
{{ if $paginator.HasPrev }}
<a href="{{ $paginator.Prev.URL }}"
class="inline-flex items-center px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200">
class="inline-flex items-center px-4 py-2 bg-primary-400 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200">
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"></path>
</svg>
@@ -40,7 +40,7 @@
<div class="flex space-x-2">
{{ range $paginator.Pagers }}
{{ if eq . $paginator }}
<span class="px-4 py-2 bg-primary-600 text-white rounded-lg">
<span class="px-4 py-2 bg-primary-400 text-white rounded-lg">
{{ .PageNumber }}
</span>
{{ else }}
@@ -54,7 +54,7 @@
{{ if $paginator.HasNext }}
<a href="{{ $paginator.Next.URL }}"
class="inline-flex items-center px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200">
class="inline-flex items-center px-4 py-2 bg-primary-400 text-white rounded-lg hover:bg-primary-700 transition-colors duration-200">
Next
<svg class="w-5 h-5 ml-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3"></path>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 153 KiB

View File

@@ -5,28 +5,28 @@ module.exports = {
extend: {
colors: {
primary: {
50: '#eef1fc',
100: '#dde3f9',
200: '#bbc7f3',
300: '#99abec',
400: '#778fe6',
500: '#5573df',
600: '#425ad6',
700: '#3548ab',
800: '#283680',
900: '#1b2456',
50: "#fffbfa",
100: "#fcd7ca",
200: "#f9b29a",
300: "#f78d69",
400: "#f46839", // couleur principale
500: "#ed450d",
600: "#bd370a",
700: "#8c2908",
800: "#5c1b05",
900: "#2c0d02",
},
secondary: {
50: '#faf5ff',
100: '#f3e8ff',
200: '#e9d5ff',
300: '#d8b4fe',
400: '#c084fc',
500: '#a855f7',
600: '#9333ea',
700: '#7e22ce',
800: '#6b21a8',
900: '#581c87',
50: "#ddeef6",
100: "#8ec6df",
200: "#3e9fc9",
300: "#23627e",
400: "#0d242e", // couleur principale
500: "#020506",
600: "#000",
700: "#000",
800: "#000",
900: "#000",
},
},
fontFamily: {

View File

@@ -1,13 +1,13 @@
name = "Hugo Saasify"
license = "MIT"
licenselink = "https://github.com/chaoming/chill-theme/blob/main/LICENSE"
description = "A modern Hugo theme for SaaS websites built with TailwindCSS"
homepage = "https://github.com/chaoming/chill-theme"
demosite = "https://saasify-demo.chaoming.li"
licenselink = ""
description = ""
homepage = ""
demosite = ""
tags = ["saas", "business", "tailwind", "responsive", "modern", "clean"]
features = ["responsive", "tailwind", "modern design"]
min_version = "0.80.0"
[author]
name = "Chaoming Li"
homepage = "https://chaoming.li"
name = "Champs-Libres"
homepage = "https://www.champs-libres.coop/"