Toujours désireuse d'apporter plus de variété dans vos assiettes, la marque Doux se lance dans la production de produits élaborés destinés à l’export, tels que les nuggets, les burgers ou les escalopes panées.
Mentions légales et conditions générales d\'utilisation du site Doux
+
Introduction
Nous vous remercions de lire ces conditions générales d\'utilisation qui régissent les conditions d’accès et d’utilisation du site https://www.doux.fr/
Nous vous invitons à consulter régulièrement cette rubrique car la société SOCIETE BRETONNE DE VOLAILLE peut être amenée à la modifier à tout moment.
Tout utilisateur déclare avoir lu et accepté les mentions légales et les conditions générales d’utilisation et s’engage à s’y conformer.
Mise à jour le 14/10/21.
Mentions légales
Société Bretonne de Volaille (ci-après SBV), ZI du Lay 56660 Saint-Jean-Brévelay
Tél : 02 97 60 33 88, Société par Actions simplifiées au capital social de 83 470 000 euros – RCS de Vannes sous le numéro 808 448 757 Editeur du Site : société LDC- Zi St Laurent – 72300Sablé sur Sarthe, SA au capital de 6 785 055,60 euros, RCS Le Mans n° 576 850 697. Tel : 02 43 62 70 00
Directeur de la publication : Roland Tonarelli
Conception du site et réalisation : Graphisweet marque de la Société Graphimedia
SAS au capital de 10000€.
SIRET : 879 404 895 00010
Siège social : Bâtiment MV Group - Espace Performance III - Centre Affaires Alphasis - 35760 Saint Grégoire
Le site est hébergé par : OVH, via LDC, SAS au capital de 10 069 020 euros, RCS Lille Métropole 537 407 926, 2 rue Kellermann – 59100 Roubaix, Tel : 09 72 10 10 07, Mail : hosting@ml.ovh.net
Droit d’auteur - Droit des marques – Protection des bases de données
La présentation et le contenu du site constituent, ensemble, une œuvre protégée par les lois en vigueur des droits d’auteur, de la propriété intellectuelle et industrielle.
Les créations apparaissant sur le site (dessins, photographies, images, textes, séquences animées sonores ou non et autres documentations représentées), sont objets de droits d’auteur, de propriété industrielle et/ou intellectuelle et sont, selon les cas, propriété de la société SOCIETE BRETONNE DE VOLAILLE ou de tiers ayant autorisé la société SOCIETE BRETONNE DE VOLAILLE à les utiliser.
Aucune exploitation commerciale, reproduction, représentation, utilisation, adaptation, modification, incorporation, traduction, commercialisation, partielle ou intégrale de ces éléments (y compris ceux téléchargeables ou copiables) ne pourra en être faite sans l\'accord préalable et écrit de la société SOCIETE BRETONNE DE VOLAILLE, à l\'exception de l\'utilisation pour un usage privé sous réserve des dispositions différentes voire plus restrictives du Code de la propriété intellectuelle.
Toute utilisation non expressément autorisée peut engager la responsabilité civile et/ou pénale de son auteur. SOCIETE BRETONNE DE VOLAILLE se réserve le droit d\'engager des poursuites judiciaires à l\'encontre de toute personne qui n\'aurait pas respecté cette interdiction.
Vie privée – Données personnelles – Cookies
Nous vous invitons à vous reporter à notre Charte de confidentialité en cliquant ici.
Mentions Sanitaires :
Pour votre santé :
-mangez au moins cinq fruits et légumes par jour
-pratiquez une activité physique régulière
-évitez de manger trop gras, trop sucré, trop salé
-évitez de grignoter entre les repas
Pour toute information complémentaire, consultez le site : www.mangerbouger.fr
Responsabilité
La SOCIÉTÉ BRETONNE DE VOLAILLE a déployé ses meilleurs efforts pour s’assurer de l’exactitude des informations présentes sur son site internet (ci-après le Site). Cependant, la SOCIÉTÉ BRETONNE DE VOLAILLE n’est responsable ni de l’exactitude, ni des erreurs, ni des omissions contenues sur le Site. L’utilisateur est seul responsable de l’utilisation de telles informations.
La SOCIÉTÉ BRETONNE DE VOLAILLE ne donne aucune garantie, explicite ou implicite, et n’assume aucune responsabilité qui pourrait résulter de l’accès ou de l’utilisation de ce Site incluant toutes détériorations ou virus qui pourraient infecter l’équipement informatique ou tout autre bien de l’utilisateur.
Par ailleurs.
La SOCIÉTÉ BRETONNE DE VOLAILLE pourra unilatéralement et à tout moment interrompre temporairement ou définitivement l’accès à tout ou partie du Site, y compris notamment le contenu, les fonctionnalités ou les heures de disponibilité, sans que sa responsabilité ne puisse être recherchée et sans que cela ne puisse donner lieu à l’allocation de dommages et intérêts de quelque nature que ce soit.
Les pages du Site peuvent contenir des liens hypertextes renvoyant vers d\'autres sites internet gérés par des sociétés distinctes de SOCIÉTÉ BRETONNE DE VOLAILLE, et sur lesquels la SOCIÉTÉ BRETONNE DE VOLAILLE n\'exerce aucune sorte de contrôle. SOCIÉTÉ BRETONNE DE VOLAILLE n\'est pas responsable du contenu de tout autre site auquel vous pourriez avoir accès via le Site ou les autres sites internet du groupe LDC. Tout utilisateur ou visiteur du Site ne peut mettre en place un lien hypertexte en direction de ce Site sans l’autorisation expresse préalable de la SOCIÉTÉ BRETONNE DE VOLAILLE.
Le nouveau Règlement Général de l’Union Européenne sur la Protection des Données (RGPD), entré en vigueur le 25 mai 2018, vise à mieux encadrer la collecte, le traitement et l’utilisation de vos données personnelles. La société Bretonne de Volaille, en sa qualité de responsable du traitement, renforce ses engagements pour garantir la protection et la sécurité des données à caractère personnel que vous lui confiez.
+
A ce titre, la présente Charte de confidentialité vous informe sur le type de données que nous collectons, comment nous les traitons, dans quelles finalités, de manière à rendre leur utilisation la plus adaptée à vos besoins.
+
Le responsable de traitement, qui collecte et gère vos données, est la société Société Bretonne de Volaille, Société par actions simplifiées au capital social de 83 470 000 euros immatriculée au registre du commerce et des sociétés de Vannes sous le numéro 808 448 757, dont le siège social est ZI du Lay, 56660 Saint-Jean-Brévelay représentée par Roland Tonarelli.
+
Pour toute question relative à notre Charte de confidentialité, merci de nous contacter via le formulaire de contact suivant :
Nous vous invitons à consulter régulièrement cette rubrique car la Société Bretonne de Volaille peut être amenée à la modifier à tout moment.
+
La présente Charte de confidentialité a été mise à jour le 14/10/2021.
+
+
NOS ENGAGEMENTS
+
Conformément à la réglementation relative à la protection des données personnelles et à la vie privée, notamment la loi n°78-17 du 6 janvier 1978 relative à l’informatique, aux fichiers et aux libertés dite loi « Informatique et Libertés » et au Règlement (UE) 2016/679 du 25 mai 2018 relatif à la protection des personnes physiques à l'égard du traitement des données à caractère personnel et à la libre circulation de ces données, (ci-après le « Règlement RGPD»), la Société Bretonne de Volaille s’engage à respecter les principes suivants :
Consentement : vous devez avoir consenti à la collecte et au traitement de vos données. Si tel n’était pas le cas ou si vous avez changé d’avis, merci de vous reporter à l’article ci-dessous relatif à vos droits.
Limitation des données collectées : nous ne collectons que les données qui sont strictement nécessaires au traitement et à l’utilisation envisagée. Nous vous rappelons qu’il n’y a aucune obligation à nous transmettre ces données. Toutefois certains services ou opérations promotionnelles nécessitent certaines données, faute de quoi vous ne pourriez y accéder.
Limitation des finalités : les données que nous collectons sont traitées uniquement dans les finalités décrites ci-dessous.
Limitation des durées de conservation : vos données sont conservées uniquement le temps nécessaire aux finalités de traitement pour lequel elles ont été collectées. Au-delà de cette durée si aucune obligation légale impose leur conservation, nous veillerons à ce que vos données soient supprimées, détruites ou anonymisées.
Protection des données : en vue de sécuriser vos données et leur traitement, nous avons mis en place des mesures techniques et organisationnelles détaillées ci-dessous.
Transparence et loyauté : lorsque la Société Bretonne de Volaille collecte une donnée vous concernant, nous vous informons de l’utilisation qui en sera faite. C’est pourquoi nous vous conseillons de lire attentivement les informations qui vous sont transmises à travers notre site internet.
+
QUELLES DONNÉES PERSONNELLES SONT COLLECTEES ?
+
Au sens du Règlement RGPD, une donnée à caractère personnel désigne toute information relative à une personne physique identifiée ou identifiable.
+
Les données personnelles collectées varient en fonction du but de la collecte et du service dont vous souhaitez bénéficier.
+
La société Société Bretonne de Volaille est amenée à collecter les catégories de données personnelles suivantes:
coordonnées personnelles (civilité, nom, prénom, adresse e-mail, adresse postale, ville, code postal, date de naissance, téléphone, ) ;
coordonnées personnelles non obligatoires (comment avez-vous connu la coupe de France de la Volaille) ;
identifiants utilisés pour accéder à votre compte en ligne (adresse IP, adresse e-mail et mot de passe) ;
coordonnées professionnelles (le statut : en activité ou étudiant, le type de restauration, le nom de l’établissement, le code postal de l’établissement, la fonction exercée,
coordonnée professionnelles non obligatoires (site internet ou facebook de l’établissement, canal d’approvisionnement)
information au sujet du plat (intitulé du plat, liste d’ingrédients, le travail apporté à la canette entière, légitimité de la recette par rapport au thème, photo tapas 1, photo tapas 2, photo tapas 3, photo de l’ensemble des tapas).
historiques de navigation, telles que les pages visitées et actions sur le site.
Vous vous engagez à fournir des données personnelles actualisées et valides et garantissez ne faire aucune fausse déclaration et ne donner aucune information erronée.
+
+
POURQUOI VOS DONNEES PERSONNELLES SONT COLLECTEES ?
+
. Vos données peuvent être collectées dans la mesure où vous avez consenti de manière spécifique, libre et éclairée. Elles peuvent également être collectées pour satisfaire à l’exécution d’une obligation légale ou dans le cadre de la relation contractuelle construite avec vous (notamment conditions générales d’utilisation, conditions générales de vente) ou encore dans l’intérêt légitime de la Société Bretonne de Volaille (par exemple pour assurer la sécurité des transactions).
+
Nous collectons vos données personnelles afin de vous fournir la meilleure expérience utilisateur à travers notre site internet.
+
Ces données sont collectées aux fins suivantes :
Gestion des fonctionnalités et de la qualité du site internet
Gestion de votre inscription à notre Newsletter et de votre Compte utilisateur
Accès à votre Compte utilisateur
Traitement de vos demandes de renseignements
Communication des informations (promotions, nouveaux produits, activité de la marque)
Gestion de votre participation à nos jeux, tirages au sort, activités promotionnelles
Développement et amélioration des produits iD halal
Statistiques
Partages sur les réseaux sociaux
+
QUELS SONT VOS DROITS ?
+
Vous disposez d’un certain nombre de droits concernant vos données personnelles listés ci-dessous.
Droit d’accès
Vous pouvez demander la communication de vos données sous une forme accessible, la confirmation que vos données font ou ne font plus l’objet d’un traitement ainsi que la communication des informations relatives à vos données. Afin que vos données personnelles soient exactes, complètes, pertinentes et à jour, vous avez le droit d’accéder, de corriger ou de mettre à jour vos données personnelles à tout moment.
Droit de rectification
Vous êtes en droit de demander à ce que vos données soient rectifiées, complétées ou mises à jour lorsqu’elles sont inexactes, incomplètes, équivoques ou périmées.
Droit à l’effacement
Vous avez le droit de demander la suppression de vos données personnelles notamment lorsqu’elles ne sont plus nécessaires aux finalités pour lesquelles elles ont été collectées. Si les données personnelles collectées ne sont plus nécessaires à aucune finalité et qu’aucune obligation légale nous impose de les conserver, nous mettrons tout en œuvre pour supprimer, détruire ou anonymiser ces données.
Droit à la limitation du traitement
Vous avez le droit de demander la limitation du traitement de vos données personnelles si :
vous contestez l’exactitude des données ;
vous souhaitez limiter le traitement des données qui n’avaient pas été traitées de manière licite plutôt que leur suppression ;
nous n’avons plus besoin de vos données personnelles mais celles-ci sont nécessaires pour la constatation, l’exercice ou la défense de vos droits en justice ;
vous vous êtes opposés au traitement de vos données personnelles et attendez de savoir si vos intérêts liés à cette objection l’emportent sur les motifs légitimes que nous poursuivons.
Droit à la portabilité de vos données
Lorsque le traitement est effectué à partir de procédés automatisés et que vous avez librement consenti au traitement de vos données personnelles pour une finalité que nous vous avions communiqué au préalable ; ou lorsque nous traitons vos données dans le cadre d’une opération commerciale (ex : vous fournir un produit) vous avez le droit de demander :
à recevoir vos données personnelles dans un format structuré, couramment utilisé et lisible par une machine ;
à ce que vos données personnelles soient transmises directement à une autre responsable de traitement, lorsque que cela est techniquement possible.
Droit d’opposition
Lorsque vos données sont traitées à des fins de prospection commerciale, vous avez le droit, à tout moment, de vous opposer au traitement de vos données personnelles et ce sans motif.
+
+
Droit de porter réclamation auprès de la CNIL
+
Si vous estimez que le traitement de vos données personnelles constitue une violation de la réglementation, vous pouvez introduire une réclamation auprès d’une autorité de contrôle, telle que la CNIL.
+
Vous pouvez exercer ces droits à tout moment en nous contactant via le formulaire suivant :
Vous recevrez une réponse de notre part dans un délai d’un mois à compter de la réception de la demande. En cas de demande complexe ou du nombre important de demandes, le délai peut être prolongé de deux mois.
+
L’exercice des droits se fait à titre gratuit. Si toutefois la demande était manifestement infondée ou excessive, la Société Bretonne de Volaille se réserve la possibilité d’appliquer des frais administratifs ou de refuser de donner suite à la demande.
+
+
COMMENT VOS DONNEES PERSONNELLES SONT PROTEGEES ?
+
Afin d’assurer la sécurité de vos données personnelles nous avons mis en place des mesures de sécurité, notamment des contrôles d’accès, des pare-feux, des serveurs sécurisés.
+
Ces mesures visent à protéger vos données personnelles contre toute perte, détournement, mauvaise utilisation, divulgation, modification, interférence, dommage, accès non autorisé des données.
+
En cas de violation de vos données personnelles susceptible d’engendrer un risque pour vos droits et libertés, la Société Bretonne de Volaille en notifie la violation à la CNIL dans les meilleurs délais et, si possible, 72 heures au plus tard après en avoir pris connaissance. La Société Bretonne de Volaille vous en informera dans les meilleurs délais.
+
+
ACCES A VOS DONNEES PERSONNELLES :
+
Vos données personnelles sont destinées au personnel de la Société Bretonne de Volaille habilité à les traiter, notamment le service marketing, développement durable, informatique, commercial, qualité et administratif.
+
+
PARTAGE DE VOS DONNÉES PERSONNELLES :
+
Conformément à la règlementation, quand nous sommes amenés à partager vos données personnelles avec des sous-traitants pour certaines finalités décrites dans la présente Charte, nous nous assurons que leur dispositif en matière de sécurité des données et de leur stockage est au moins aussi important que celui de notre organisation. Nous veillons également à ce qu’ils respectent les lois relatives à la protection des données personnelles dans des conditions au moins équivalentes à celles que nous respectons.
+
Par ailleurs, les sous-traitants étant amenés à traiter de vos données personnelles pour notre compte et sur nos instructions, nous nous engageons à ce que vos données personnelles ne soient pas partagées ou divulguées pour des finalités autres que celles décrites dans la présente Charte. Nous pouvons cependant être amenés à transmettre vos données, pour des finalités autres que celles prévues dans la Charte, dans les cas où leur communication est requise par la loi et les autorités gouvernementales.
+
+
TRANSFERT DE VOS DONNÉES EN DEHORS DE L’ESPACE ECONOMIQUE EUROPEEN :
+
Nous nous informons que vos données personnelles ne sont pas traitées en dehors de l’Espace Economique Européen (EEE). En cas de changement, nous vous en avertirons et mettrons tout en œuvre pour que ce transfert international de données dispose d’un niveau et de garanties de sécurité adéquats.
+
+
UTILISATION DES COOKIES :
+
Les cookies sont des petits fichiers textes contenant des informations propres vous concernant stockés sur le disque dur de l’équipement informatique avec lequel vous vous êtes connectés sur le site internet et pouvant être lus seulement par le serveur qui l’a fourni. Les cookies sont gérés par votre navigateur internet.
+
Les cookies indiquent la fréquentation des pages que vous visitez, ce qui nous aide à connaître les informations qui vous intéressent. Cela permet de vous offrir plus de contenu qui vous intéresse et moins de contenu qui ne vous intéresse pas.
+
Les cookies vous permettent de stocker des préférences et les noms des utilisateurs, enregistrer des produits et des services, personnaliser des pages ou faire de la publicité ciblée.
+
A travers ces cookies, vos données personnelles peuvent être recueilles telles que :
des informations concernant le navigateur de votre appareil et le système d'exploitation que vous utilisez ;
l’adresse IP de l'appareil que vous utilisez ;
les pages Web que vous consultez ;
les liens sur lesquelles vous cliquez pendant que vous êtes en interaction avec nos services.
Le site internet de la Société Bretonne de Volaille https://www.idhalal.fr/ utilise deux types de cookies qui ont des finalités différentes. Tous les cookies de type non techniques doivent recueillir votre consentement avant d’être installés. Vous pouvez donner votre consentement sur la page d’accueil du site internet, en cliquant sur « accepter ».
Les cookies strictement nécessaires et fonctionnels
Ces cookies sont nécessaires au bon fonctionnement du site internet. Ils vous permettent d’utiliser les principales fonctionnalités. Sans ces cookies, vous ne pourrez pas utiliser normalement le site internet.
Les cookies analytiques
Ces cookies nous permettent de connaître l’utilisation et les performances du site internet et d’en améliorer son fonctionnement.
+
+
Vous avez le choix :
d’accepter ces cookies en cliquant sur le bouton « Accepter » présent sur le bandeau Cookies, apparaissant au bas de votre page internet. Tant que vous n’avez pas accepté, les cookies ne pourront être stockés sur votre appareil ; ou
de refuser ces cookies via le bouton « Refuser » et/ou « Paramétrer » présent sur le bandeau Cookies.
+
Lorsque vous cliquez sur le bouton « Paramétrer » du bandeau Cookies, une liste s’affiche présentant les différents types de cookies par finalité. Si vous consentez au dépôt des cookies, il vous suffit de les activer puis de cliquer sur le bouton « Enregistrer » en bas de la fenêtre. Si vous refusez le dépôt des cookies, il vous suffit de cliquer sur le bouton « Enregistrer », le dépôt des cookies étant par défaut désactivé.
+
Pour en savoir plus sur la désactivation des cookies via votre navigateur internet :
La durée de conservation de ces informations dans votre appareil est d’une durée maximale de 13 mois. A l’expiration de ce délai, nous recueillerons de nouveau votre consentement.
+
Pour plus d’informations sur le paramétrage de vos cookies, vous pouvez consulter :
Le site internet de la société Bretonne de Volaille peut être associé à des sites internet tiers. Les sites hébergés par des tiers sont hors de notre contrôle. Lorsque vous renseignez des données personnelles sur un site internet tiers, le traitement de ces données n'est pas effectué sur notre site internet, mais sur le site internet tiers concerné. Toute donnée personnelle que vous fournissez sera collectée et traitée conformément à la politique relative à la confidentialité des données du tiers concerné.
+
Par conséquent, nous n'assumons aucune responsabilité concernant les pratiques exercées par lesdits tiers en matière de protection des données.
+
+
DROIT APPLICABLE
+
La présente Charte de confidentialité est régie et sera interprétée conformément au droit français.
+
+
NOUS CONTACTER
+
Si vous avez des questions, remarques ou réclamations relatives à la présente Charte de confidentialité, ou le traitement de vos données personnelles, veuillez-nous contacter à l’adresse e-mail suivante :
10.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
11.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
12.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
13.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
+
+
+
+
14.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
16.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
18.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
+
+
+
+
+
+
20.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
24.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
+
+
+
+
+
30.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
+
+
+
+
+
+
10.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
11.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
12.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
13.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
+
+
+
+
+
14.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
16.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
18.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
+
+
+
+
+
20.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
24.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
+
+
+
+
+
+
+
+
+
30.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.
Donec sed odio dui. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.
+
+
+
Pellentesque ornare sem
+
+
Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas faucibus mollis interdum. Donec ullamcorper nulla non metus auctor fringilla. Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit.
+
+
Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
+
+
Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur.
+
+
Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla.
+
+
Cras mattis consectetur
+
+
Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras mattis consectetur purus sit amet fermentum.
+
+
Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam quis risus eget urna mollis ornare vel eu leo. Cras mattis consectetur purus sit amet fermentum.
+
+
+
+
+
+
Nullam quis risus eget urna mollis ornare vel eu leo. Donec ullamcorper nulla non metus auctor fringilla. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+
+
+
Maecenas sed diam eget risus varius.
+
+
Vestibulum id ligula porta felis euismod semper. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Vestibulum id ligula porta felis euismod semper. Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.
+
+
+
+
Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean lacinia bibendum nulla sed consectetur. Nullam quis risus eget urna mollis ornare vel eu leo.
+
+
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec ullamcorper nulla non metus auctor fringilla. Maecenas faucibus mollis interdum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.
The subset of Cocon Regular in this kit includes all the glyphs listed below. Unicode entities are included above each glyph to help you insert individual characters into your layout.
Webfonts are supported by all major browser platforms but not all in the same way. There are currently four different font formats that must be included in order to target all browsers. This includes TTF, WOFF, EOT and SVG.
+
+
1. Upload your webfonts
+
You must upload your webfont kit to your website. They should be in or near the same directory as your CSS files.
+
+
2. Include the webfont stylesheet
+
A special CSS @font-face declaration helps the various browsers select the appropriate font it needs without causing you a bunch of headaches. Learn more about this syntax by reading the Fontspring blog post about it. The code for it is as follows:
To take advantage of your new fonts, you must tell your stylesheet to use them. Look at the original @font-face declaration above and find the property called "font-family." The name linked there will be what you use to reference the font. Prepend that webfont name to the font stack in the "font-family" property, inside the selector you want to change. For example:
Getting webfonts to work cross-browser can be tricky. Use the information in the sidebar to help you if you find that fonts aren't loading in a particular browser.
+
+
+
+
+
Troubleshooting Font-Face Problems
+
Having trouble getting your webfonts to load in your new website? Here are some tips to sort out what might be the problem.
+
+
Fonts not showing in any browser
+
+
This sounds like you need to work on the plumbing. You either did not upload the fonts to the correct directory, or you did not link the fonts properly in the CSS. If you've confirmed that all this is correct and you still have a problem, take a look at your .htaccess file and see if requests are getting intercepted.
+
+
Fonts not loading in iPhone or iPad
+
+
The most common problem here is that you are serving the fonts from an IIS server. IIS refuses to serve files that have unknown MIME types. If that is the case, you must set the MIME type for SVG to "image/svg+xml" in the server settings. Follow these instructions from Microsoft if you need help.
+
+
Fonts not loading in Firefox
+
+
The primary reason for this failure? You are still using a version Firefox older than 3.5. So upgrade already! If that isn't it, then you are very likely serving fonts from a different domain. Firefox requires that all font assets be served from the same domain. Lastly it is possible that you need to add WOFF to your list of MIME types (if you are serving via IIS.)
+
+
Fonts not loading in IE
+
+
Are you looking at Internet Explorer on an actual Windows machine or are you cheating by using a service like Adobe BrowserLab? Many of these screenshot services do not render @font-face for IE. Best to test it on a real machine.
+
+
Fonts not loading in IE9
+
+
IE9, like Firefox, requires that fonts be served from the same domain as the website. Make sure that is the case.
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/assets/fonts/cocon/cocon-regular-webfont.woff b/resources/assets/fonts/cocon/cocon-regular-webfont.woff
new file mode 100644
index 0000000..ba4bd15
Binary files /dev/null and b/resources/assets/fonts/cocon/cocon-regular-webfont.woff differ
diff --git a/resources/assets/fonts/cocon/cocon-regular-webfont.woff2 b/resources/assets/fonts/cocon/cocon-regular-webfont.woff2
new file mode 100644
index 0000000..f84b00c
Binary files /dev/null and b/resources/assets/fonts/cocon/cocon-regular-webfont.woff2 differ
diff --git a/resources/assets/fonts/cocon/generator_config.txt b/resources/assets/fonts/cocon/generator_config.txt
new file mode 100644
index 0000000..81e64f6
--- /dev/null
+++ b/resources/assets/fonts/cocon/generator_config.txt
@@ -0,0 +1,5 @@
+# Font Squirrel Font-face Generator Configuration File
+# Upload this file to the generator to recreate the settings
+# you used to create these fonts.
+
+{"mode":"optimal","formats":["woff","woff2"],"tt_instructor":"default","fix_gasp":"xy","fix_vertical_metrics":"Y","metrics_ascent":"","metrics_descent":"","metrics_linegap":"","add_spaces":"Y","add_hyphens":"Y","fallback":"none","fallback_custom":"100","options_subset":"basic","subset_custom":"","subset_custom_range":"","subset_ot_features_list":"","css_stylesheet":"stylesheet.css","filename_suffix":"-webfont","emsquare":"2048","spacing_adjustment":"0"}
\ No newline at end of file
diff --git a/resources/assets/fonts/cocon/specimen_files/grid_12-825-55-15.css b/resources/assets/fonts/cocon/specimen_files/grid_12-825-55-15.css
new file mode 100644
index 0000000..3d6aef7
--- /dev/null
+++ b/resources/assets/fonts/cocon/specimen_files/grid_12-825-55-15.css
@@ -0,0 +1,129 @@
+/*Notes about grid:
+Columns: 12
+Grid Width: 825px
+Column Width: 55px
+Gutter Width: 15px
+-------------------------------*/
+
+
+
+.section {margin-bottom: 18px;
+}
+.section:after {content: ".";display: block;height: 0;clear: both;visibility: hidden;}
+.section {*zoom: 1;}
+
+.section .firstcolumn,
+.section .firstcol {margin-left: 0;}
+
+
+/* Border on left hand side of a column. */
+.border {
+ padding-left: 7px;
+ margin-left: 7px;
+ border-left: 1px solid #eee;
+}
+
+/* Border with more whitespace, spans one column. */
+.colborder {
+ padding-left: 42px;
+ margin-left: 42px;
+ border-left: 1px solid #eee;
+}
+
+
+
+/* The Grid Classes */
+.grid1, .grid1_2cols, .grid1_3cols, .grid1_4cols, .grid2, .grid2_3cols, .grid2_4cols, .grid3, .grid3_2cols, .grid3_4cols, .grid4, .grid4_3cols, .grid5, .grid5_2cols, .grid5_3cols, .grid5_4cols, .grid6, .grid6_4cols, .grid7, .grid7_2cols, .grid7_3cols, .grid7_4cols, .grid8, .grid8_3cols, .grid9, .grid9_2cols, .grid9_4cols, .grid10, .grid10_3cols, .grid10_4cols, .grid11, .grid11_2cols, .grid11_3cols, .grid11_4cols, .grid12
+{margin-left: 15px;float: left;display: inline; overflow: hidden;}
+
+
+.width1, .grid1, .span-1 {width: 55px;}
+.width1_2cols,.grid1_2cols {width: 20px;}
+.width1_3cols,.grid1_3cols {width: 8px;}
+.width1_4cols,.grid1_4cols {width: 2px;}
+.input_width1 {width: 49px;}
+
+.width2, .grid2, .span-2 {width: 125px;}
+.width2_3cols,.grid2_3cols {width: 31px;}
+.width2_4cols,.grid2_4cols {width: 20px;}
+.input_width2 {width: 119px;}
+
+.width3, .grid3, .span-3 {width: 195px;}
+.width3_2cols,.grid3_2cols {width: 90px;}
+.width3_4cols,.grid3_4cols {width: 37px;}
+.input_width3 {width: 189px;}
+
+.width4, .grid4, .span-4 {width: 265px;}
+.width4_3cols,.grid4_3cols {width: 78px;}
+.input_width4 {width: 259px;}
+
+.width5, .grid5, .span-5 {width: 335px;}
+.width5_2cols,.grid5_2cols {width: 160px;}
+.width5_3cols,.grid5_3cols {width: 101px;}
+.width5_4cols,.grid5_4cols {width: 72px;}
+.input_width5 {width: 329px;}
+
+.width6, .grid6, .span-6 {width: 405px;}
+.width6_4cols,.grid6_4cols {width: 90px;}
+.input_width6 {width: 399px;}
+
+.width7, .grid7, .span-7 {width: 475px;}
+.width7_2cols,.grid7_2cols {width: 230px;}
+.width7_3cols,.grid7_3cols {width: 148px;}
+.width7_4cols,.grid7_4cols {width: 107px;}
+.input_width7 {width: 469px;}
+
+.width8, .grid8, .span-8 {width: 545px;}
+.width8_3cols,.grid8_3cols {width: 171px;}
+.input_width8 {width: 539px;}
+
+.width9, .grid9, .span-9 {width: 615px;}
+.width9_2cols,.grid9_2cols {width: 300px;}
+.width9_4cols,.grid9_4cols {width: 142px;}
+.input_width9 {width: 609px;}
+
+.width10, .grid10, .span-10 {width: 685px;}
+.width10_3cols,.grid10_3cols {width: 218px;}
+.width10_4cols,.grid10_4cols {width: 160px;}
+.input_width10 {width: 679px;}
+
+.width11, .grid11, .span-11 {width: 755px;}
+.width11_2cols,.grid11_2cols {width: 370px;}
+.width11_3cols,.grid11_3cols {width: 241px;}
+.width11_4cols,.grid11_4cols {width: 177px;}
+.input_width11 {width: 749px;}
+
+.width12, .grid12, .span-12 {width: 825px;}
+.input_width12 {width: 819px;}
+
+/* Subdivided grid spaces */
+.emptycols_left1, .prepend-1 {padding-left: 70px;}
+.emptycols_right1, .append-1 {padding-right: 70px;}
+.emptycols_left2, .prepend-2 {padding-left: 140px;}
+.emptycols_right2, .append-2 {padding-right: 140px;}
+.emptycols_left3, .prepend-3 {padding-left: 210px;}
+.emptycols_right3, .append-3 {padding-right: 210px;}
+.emptycols_left4, .prepend-4 {padding-left: 280px;}
+.emptycols_right4, .append-4 {padding-right: 280px;}
+.emptycols_left5, .prepend-5 {padding-left: 350px;}
+.emptycols_right5, .append-5 {padding-right: 350px;}
+.emptycols_left6, .prepend-6 {padding-left: 420px;}
+.emptycols_right6, .append-6 {padding-right: 420px;}
+.emptycols_left7, .prepend-7 {padding-left: 490px;}
+.emptycols_right7, .append-7 {padding-right: 490px;}
+.emptycols_left8, .prepend-8 {padding-left: 560px;}
+.emptycols_right8, .append-8 {padding-right: 560px;}
+.emptycols_left9, .prepend-9 {padding-left: 630px;}
+.emptycols_right9, .append-9 {padding-right: 630px;}
+.emptycols_left10, .prepend-10 {padding-left: 700px;}
+.emptycols_right10, .append-10 {padding-right: 700px;}
+.emptycols_left11, .prepend-11 {padding-left: 770px;}
+.emptycols_right11, .append-11 {padding-right: 770px;}
+.pull-1 {margin-left: -70px;}
+.push-1 {margin-right: -70px;margin-left: 18px;float: right;}
+.pull-2 {margin-left: -140px;}
+.push-2 {margin-right: -140px;margin-left: 18px;float: right;}
+.pull-3 {margin-left: -210px;}
+.push-3 {margin-right: -210px;margin-left: 18px;float: right;}
+.pull-4 {margin-left: -280px;}
+.push-4 {margin-right: -280px;margin-left: 18px;float: right;}
\ No newline at end of file
diff --git a/resources/assets/fonts/cocon/specimen_files/specimen_stylesheet.css b/resources/assets/fonts/cocon/specimen_files/specimen_stylesheet.css
new file mode 100644
index 0000000..aecc43c
--- /dev/null
+++ b/resources/assets/fonts/cocon/specimen_files/specimen_stylesheet.css
@@ -0,0 +1,396 @@
+@import url('grid_12-825-55-15.css');
+
+/*
+ CSS Reset by Eric Meyer - Released under Public Domain
+ http://meyerweb.com/eric/tools/css/reset/
+*/
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center, dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend, table,
+caption, tbody, tfoot, thead, tr, th, td
+ {margin: 0;padding: 0;border: 0;outline: 0;
+ font-size: 100%;vertical-align: baseline;
+ background: transparent;}
+body {line-height: 1;}
+ol, ul {list-style: none;}
+blockquote, q {quotes: none;}
+blockquote:before, blockquote:after,
+q:before, q:after {content: ''; content: none;}
+:focus {outline: 0;}
+ins {text-decoration: none;}
+del {text-decoration: line-through;}
+table {border-collapse: collapse;border-spacing: 0;}
+
+
+
+
+body {
+ color: #000;
+ background-color: #dcdcdc;
+}
+
+a {
+ text-decoration: none;
+ color: #1883ba;
+}
+
+h1{
+ font-size: 32px;
+ font-weight: normal;
+ font-style: normal;
+ margin-bottom: 18px;
+}
+
+h2{
+ font-size: 18px;
+}
+
+#container {
+ width: 865px;
+ margin: 0px auto;
+}
+
+
+#header {
+ padding: 20px;
+ font-size: 36px;
+ background-color: #000;
+ color: #fff;
+}
+
+#header span {
+ color: #666;
+}
+#main_content {
+ background-color: #fff;
+ padding: 60px 20px 20px;
+}
+
+
+#footer p {
+ margin: 0;
+ padding-top: 10px;
+ padding-bottom: 50px;
+ color: #333;
+ font: 10px Arial, sans-serif;
+}
+
+.tabs {
+ width: 100%;
+ height: 31px;
+ background-color: #444;
+}
+.tabs li {
+ float: left;
+ margin: 0;
+ overflow: hidden;
+ background-color: #444;
+}
+.tabs li a {
+ display: block;
+ color: #fff;
+ text-decoration: none;
+ font: bold 11px/11px 'Arial';
+ text-transform: uppercase;
+ padding: 10px 15px;
+ border-right: 1px solid #fff;
+}
+
+.tabs li a:hover {
+ background-color: #00b3ff;
+
+}
+
+.tabs li.active a {
+ color: #000;
+ background-color: #fff;
+}
+
+
+
+div.huge {
+
+ font-size: 300px;
+ line-height: 1em;
+ padding: 0;
+ letter-spacing: -.02em;
+ overflow: hidden;
+}
+div.glyph_range {
+ font-size: 72px;
+ line-height: 1.1em;
+}
+
+.size10{ font-size: 10px; }
+.size11{ font-size: 11px; }
+.size12{ font-size: 12px; }
+.size13{ font-size: 13px; }
+.size14{ font-size: 14px; }
+.size16{ font-size: 16px; }
+.size18{ font-size: 18px; }
+.size20{ font-size: 20px; }
+.size24{ font-size: 24px; }
+.size30{ font-size: 30px; }
+.size36{ font-size: 36px; }
+.size48{ font-size: 48px; }
+.size60{ font-size: 60px; }
+.size72{ font-size: 72px; }
+.size90{ font-size: 90px; }
+
+
+.psample_row1 { height: 120px;}
+.psample_row1 { height: 120px;}
+.psample_row2 { height: 160px;}
+.psample_row3 { height: 160px;}
+.psample_row4 { height: 160px;}
+
+.psample {
+ overflow: hidden;
+ position: relative;
+}
+.psample p {
+ line-height: 1.3em;
+ display: block;
+ overflow: hidden;
+ margin: 0;
+}
+
+.psample span {
+ margin-right: .5em;
+}
+
+.white_blend {
+ width: 100%;
+ height: 61px;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1JREFUeNrs3TsKgFAMRUE/eer+NxztxMYuEWQG3ECKwwUF58ycAKixOAGAyAKILAAiCyCyACILgMgCiCyAyAIgsgAiCyCyAIgsgMgCiCwAIgsgsgAiC4DIAogsACIL0CWuZ3UGgLrIhjMA1EV2OAOAJQtgyQLwjOzmDAAiCyCyAIgsQFtkd2cAEFkAkQVAZAHaIns4A4AlC2DJAiCyACILILIAiCzAV5H1dQGAJQsgsgCILIDIAvwisl58AViyAJYsACILILIAIgvAe2T9EhxAZAFEFgCRBeiL7HAGgLrIhjMAWLIAliwAt1OAAQDwygTBulLIlQAAAABJRU5ErkJggg==);
+ position: absolute;
+ bottom: 0;
+}
+.black_blend {
+ width: 100%;
+ height: 61px;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPJJREFUeNrs3TEKhTAQRVGjibr/9QoxhY2N3Ywo50A28IrLwP9g6b1PAMSYTQAgsgAiC4DIAogsgMgCILIAIgsgsgCILIDIAogsACILILIAIguAyAKILIDIAiCyACILgMgCZCnjLWYAiFGvB0BQZJsZAFyyAC5ZAO6RXc0AILIAIguAyAKkRXYzA4DIAogsACILkBbZ3QwALlkAlywAIgsgsgAiC4DIArwVWf8uAHDJAogsACILILIAv4isH74AXLIALlkARBZAZAFEFoDnyPokOIDIAogsACILkBfZZgaAuMhWMwC4ZAE+p4x3mAEgxinAAJ+XBbPWGkwAAAAAAElFTkSuQmCC);
+ position: absolute;
+ bottom: 0;
+}
+.fullreverse {
+ background: #000 !important;
+ color: #fff !important;
+ margin-left: -20px;
+ padding-left: 20px;
+ margin-right: -20px;
+ padding-right: 20px;
+ padding: 20px;
+ margin-bottom:0;
+}
+
+
+.sample_table td {
+ padding-top: 3px;
+ padding-bottom:5px;
+ padding-left: 5px;
+ vertical-align: middle;
+ line-height: 1.2em;
+}
+
+.sample_table td:first-child {
+ background-color: #eee;
+ text-align: right;
+ padding-right: 5px;
+ padding-left: 0;
+ padding: 5px;
+ font: 11px/12px "Courier New", Courier, mono;
+}
+
+code {
+ white-space: pre;
+ background-color: #eee;
+ display: block;
+ padding: 10px;
+ margin-bottom: 18px;
+ overflow: auto;
+}
+
+
+.bottom,.last {margin-bottom:0 !important; padding-bottom:0 !important;}
+
+.box {
+ padding: 18px;
+ margin-bottom: 18px;
+ background: #eee;
+}
+
+.reverse,.reversed { background: #000 !important;color: #fff !important; border: none !important;}
+
+#bodycomparison {
+ position: relative;
+ overflow: hidden;
+ font-size: 72px;
+ height: 90px;
+ white-space: nowrap;
+}
+
+#bodycomparison div{
+ font-size: 72px;
+ line-height: 90px;
+ display: inline;
+ margin: 0 15px 0 0;
+ padding: 0;
+}
+
+#bodycomparison div span{
+ font: 10px Arial;
+ position: absolute;
+ left: 0;
+}
+#xheight {
+ float: none;
+ position: absolute;
+ color: #d9f3ff;
+ font-size: 72px;
+ line-height: 90px;
+}
+
+.fontbody {
+ position: relative;
+}
+.arialbody{
+ font-family: Arial;
+ position: relative;
+}
+.verdanabody{
+ font-family: Verdana;
+ position: relative;
+}
+.georgiabody{
+ font-family: Georgia;
+ position: relative;
+}
+
+/* @group Layout page
+ */
+
+#layout h1 {
+ font-size: 36px;
+ line-height: 42px;
+ font-weight: normal;
+ font-style: normal;
+}
+
+#layout h2 {
+ font-size: 24px;
+ line-height: 23px;
+ font-weight: normal;
+ font-style: normal;
+}
+
+#layout h3 {
+ font-size: 22px;
+ line-height: 1.4em;
+ margin-top: 1em;
+ font-weight: normal;
+ font-style: normal;
+}
+
+
+#layout p.byline {
+ font-size: 12px;
+ margin-top: 18px;
+ line-height: 12px;
+ margin-bottom: 0;
+}
+#layout p {
+ font-size: 14px;
+ line-height: 21px;
+ margin-bottom: .5em;
+}
+
+#layout p.large{
+ font-size: 18px;
+ line-height: 26px;
+}
+
+#layout .sidebar p{
+ font-size: 12px;
+ line-height: 1.4em;
+}
+
+#layout p.caption {
+ font-size: 10px;
+ margin-top: -16px;
+ margin-bottom: 18px;
+}
+
+/* @end */
+
+/* @group Glyphs */
+
+#glyph_chart div{
+ background-color: #d9f3ff;
+ color: black;
+ float: left;
+ font-size: 36px;
+ height: 1.2em;
+ line-height: 1.2em;
+ margin-bottom: 1px;
+ margin-right: 1px;
+ text-align: center;
+ width: 1.2em;
+ position: relative;
+ padding: .6em .2em .2em;
+}
+
+#glyph_chart div p {
+ position: absolute;
+ left: 0;
+ top: 0;
+ display: block;
+ text-align: center;
+ font: bold 9px Arial, sans-serif;
+ background-color: #3a768f;
+ width: 100%;
+ color: #fff;
+ padding: 2px 0;
+}
+
+
+#glyphs h1 {
+ font-family: Arial, sans-serif;
+}
+/* @end */
+
+/* @group Installing */
+
+#installing {
+ font: 13px Arial, sans-serif;
+}
+
+#installing p,
+#glyphs p{
+ line-height: 1.2em;
+ margin-bottom: 18px;
+ font: 13px Arial, sans-serif;
+}
+
+
+
+#installing h3{
+ font-size: 15px;
+ margin-top: 18px;
+}
+
+/* @end */
+
+#rendering h1 {
+ font-family: Arial, sans-serif;
+}
+.render_table td {
+ font: 11px "Courier New", Courier, mono;
+ vertical-align: middle;
+}
+
+
diff --git a/resources/assets/fonts/cocon/stylesheet.css b/resources/assets/fonts/cocon/stylesheet.css
new file mode 100644
index 0000000..e86489d
--- /dev/null
+++ b/resources/assets/fonts/cocon/stylesheet.css
@@ -0,0 +1,12 @@
+/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on June 3, 2021 */
+
+
+
+@font-face {
+ font-family: 'coconregular';
+ src: url('cocon-regular-webfont.woff2') format('woff2'),
+ url('cocon-regular-webfont.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+
+}
\ No newline at end of file
diff --git a/resources/assets/images/a-propos.jpg b/resources/assets/images/a-propos.jpg
index 2d0696c..992beec 100644
Binary files a/resources/assets/images/a-propos.jpg and b/resources/assets/images/a-propos.jpg differ
diff --git a/resources/assets/images/arrow-burger.png b/resources/assets/images/arrow-burger.png
new file mode 100644
index 0000000..59839a9
Binary files /dev/null and b/resources/assets/images/arrow-burger.png differ
diff --git a/resources/assets/images/banner.svg b/resources/assets/images/banner.svg
new file mode 100644
index 0000000..9c6e44c
--- /dev/null
+++ b/resources/assets/images/banner.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/resources/assets/images/banner_gamme.jpg b/resources/assets/images/banner_gamme.jpg
new file mode 100644
index 0000000..a9610f4
Binary files /dev/null and b/resources/assets/images/banner_gamme.jpg differ
diff --git a/resources/assets/images/casserole.png b/resources/assets/images/casserole.png
new file mode 100644
index 0000000..821185e
Binary files /dev/null and b/resources/assets/images/casserole.png differ
diff --git a/resources/assets/images/contact.jpg b/resources/assets/images/contact.jpg
new file mode 100644
index 0000000..5f96dfd
Binary files /dev/null and b/resources/assets/images/contact.jpg differ
diff --git a/resources/assets/images/cookrange.jpg b/resources/assets/images/cookrange.jpg
index c552d3b..a8d412a 100644
Binary files a/resources/assets/images/cookrange.jpg and b/resources/assets/images/cookrange.jpg differ
diff --git a/resources/assets/images/cuit.jpg b/resources/assets/images/cuit.jpg
deleted file mode 100644
index b85cfc1..0000000
Binary files a/resources/assets/images/cuit.jpg and /dev/null differ
diff --git a/resources/assets/images/entete_food.jpg b/resources/assets/images/entete_food.jpg
new file mode 100644
index 0000000..650629e
Binary files /dev/null and b/resources/assets/images/entete_food.jpg differ
diff --git a/resources/assets/images/entete_gammes.jpg b/resources/assets/images/entete_gammes.jpg
new file mode 100644
index 0000000..97d6bac
Binary files /dev/null and b/resources/assets/images/entete_gammes.jpg differ
diff --git a/resources/assets/images/entete_sous_gammes.jpg b/resources/assets/images/entete_sous_gammes.jpg
new file mode 100644
index 0000000..edcbcaa
Binary files /dev/null and b/resources/assets/images/entete_sous_gammes.jpg differ
diff --git a/resources/assets/images/food-service-active.png b/resources/assets/images/food-service-active.png
new file mode 100644
index 0000000..cea9aff
Binary files /dev/null and b/resources/assets/images/food-service-active.png differ
diff --git a/resources/assets/images/footer.jpg b/resources/assets/images/footer.jpg
deleted file mode 100644
index c39cced..0000000
Binary files a/resources/assets/images/footer.jpg and /dev/null differ
diff --git a/resources/assets/images/footer_food.jpg b/resources/assets/images/footer_food.jpg
new file mode 100644
index 0000000..750c808
Binary files /dev/null and b/resources/assets/images/footer_food.jpg differ
diff --git a/resources/assets/images/footer_gammes.jpg b/resources/assets/images/footer_gammes.jpg
new file mode 100644
index 0000000..8c6304c
Binary files /dev/null and b/resources/assets/images/footer_gammes.jpg differ
diff --git a/resources/assets/images/footer_home.jpg b/resources/assets/images/footer_home.jpg
new file mode 100644
index 0000000..627bc7a
Binary files /dev/null and b/resources/assets/images/footer_home.jpg differ
diff --git a/resources/assets/images/footer_marque.jpg b/resources/assets/images/footer_marque.jpg
new file mode 100644
index 0000000..46cae22
Binary files /dev/null and b/resources/assets/images/footer_marque.jpg differ
diff --git a/resources/assets/images/footer_news.jpg b/resources/assets/images/footer_news.jpg
new file mode 100644
index 0000000..b123403
Binary files /dev/null and b/resources/assets/images/footer_news.jpg differ
diff --git a/resources/assets/images/footer_product.jpg b/resources/assets/images/footer_product.jpg
new file mode 100644
index 0000000..d2900ee
Binary files /dev/null and b/resources/assets/images/footer_product.jpg differ
diff --git a/resources/assets/images/footer_products.jpg b/resources/assets/images/footer_products.jpg
new file mode 100644
index 0000000..a3eba82
Binary files /dev/null and b/resources/assets/images/footer_products.jpg differ
diff --git a/resources/assets/images/image-sample.jpg b/resources/assets/images/image-sample.jpg
index 8c5512c..1612ea9 100644
Binary files a/resources/assets/images/image-sample.jpg and b/resources/assets/images/image-sample.jpg differ
diff --git a/resources/assets/images/loupe.png b/resources/assets/images/loupe.png
new file mode 100644
index 0000000..c1f654b
Binary files /dev/null and b/resources/assets/images/loupe.png differ
diff --git a/resources/assets/images/micro-onde.png b/resources/assets/images/micro-onde.png
new file mode 100644
index 0000000..708afe1
Binary files /dev/null and b/resources/assets/images/micro-onde.png differ
diff --git a/resources/assets/images/news.jpg b/resources/assets/images/news.jpg
new file mode 100644
index 0000000..a602b8d
Binary files /dev/null and b/resources/assets/images/news.jpg differ
diff --git a/resources/assets/images/picto-localisation.png b/resources/assets/images/picto-localisation.png
deleted file mode 100644
index b3895d2..0000000
Binary files a/resources/assets/images/picto-localisation.png and /dev/null differ
diff --git a/resources/assets/images/picto_halal.png b/resources/assets/images/picto_halal.png
new file mode 100644
index 0000000..267ccc5
Binary files /dev/null and b/resources/assets/images/picto_halal.png differ
diff --git a/resources/assets/images/pranks.jpg b/resources/assets/images/pranks.jpg
index d6a8cfe..9f65622 100644
Binary files a/resources/assets/images/pranks.jpg and b/resources/assets/images/pranks.jpg differ
diff --git a/resources/assets/images/product_sample_01.png b/resources/assets/images/product_sample_01.png
new file mode 100644
index 0000000..cae3742
Binary files /dev/null and b/resources/assets/images/product_sample_01.png differ
diff --git a/resources/assets/images/slide_home_1.jpg b/resources/assets/images/slide_home_1.jpg
new file mode 100644
index 0000000..a31f29a
Binary files /dev/null and b/resources/assets/images/slide_home_1.jpg differ
diff --git a/resources/assets/images/slide_home_2.jpg b/resources/assets/images/slide_home_2.jpg
new file mode 100644
index 0000000..55a1c60
Binary files /dev/null and b/resources/assets/images/slide_home_2.jpg differ
diff --git a/resources/assets/images/slide_home_3.jpg b/resources/assets/images/slide_home_3.jpg
new file mode 100644
index 0000000..dc752c8
Binary files /dev/null and b/resources/assets/images/slide_home_3.jpg differ
diff --git a/resources/assets/images/story-line.png b/resources/assets/images/story-line.png
new file mode 100644
index 0000000..7a40af6
Binary files /dev/null and b/resources/assets/images/story-line.png differ
diff --git a/resources/assets/images/story-line.svg b/resources/assets/images/story-line.svg
new file mode 100644
index 0000000..53c7d02
--- /dev/null
+++ b/resources/assets/images/story-line.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/assets/images/volailles.jpg b/resources/assets/images/volailles.jpg
index e7b6cef..be2c0a9 100644
Binary files a/resources/assets/images/volailles.jpg and b/resources/assets/images/volailles.jpg differ
diff --git a/resources/assets/vuejs.js b/resources/assets/vuejs.js
new file mode 100644
index 0000000..f07e539
--- /dev/null
+++ b/resources/assets/vuejs.js
@@ -0,0 +1,31 @@
+window.__IDHALALVue = require('vue').default;
+import vSelect from 'vue-select'
+__IDHALALVue.component('v-select', vSelect);
+
+// register modules
+const modules = require.context("./modules", true, /\.js$/i);
+modules.keys().map(key => __IDHALALVue.mixin(modules(key).default));
+
+// Register components
+const vues = require.context("./components/backend", true, /\.vue$/i);
+vues.keys().map(key =>
+ __IDHALALVue.component(
+ key
+ .split("/")
+ .pop()
+ .split(".")[0]
+ .replace(/\.?([A-Z])/g, function (x, y) {
+ return "-" + y.toLowerCase();
+ })
+ .replace(/^-/, "")
+ .replace("-component", ""),
+ vues(key).default
+ )
+);
+const vuejsModules = [];
+
+document.getElementsByClassName('idhalal-vuejs').forEach(element => {
+ vuejsModules.push(new __IDHALALVue({
+ el: element
+ }));
+});
diff --git a/resources/js/app.js b/resources/js/app.js
deleted file mode 100644
index 092165d..0000000
--- a/resources/js/app.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var app = {
- init: () => {
- window.onscroll = function () {
- app.scrollFunction();
- };
-
- app.scroll();
- },
-
- scroll: () => {
- document
- .getElementById("backtotop")
- .addEventListener("click", function () {
- window.scrollTo({
- top: 0,
- behavior: "smooth",
- });
- });
- },
-
- scrollFunction: () => {
- if (
- document.body.scrollTop > 100 ||
- document.documentElement.scrollTop > 100
- ) {
- document.getElementById("backtotop").style.display = "flex";
- } else {
- document.getElementById("backtotop").style.display = "none";
- }
- },
-};
-
-document.addEventListener("DOMContentLoaded", app.init);
diff --git a/resources/js/back.js b/resources/js/back.js
new file mode 100644
index 0000000..da2b6bd
--- /dev/null
+++ b/resources/js/back.js
@@ -0,0 +1,14 @@
+// require('./bootstrap');
+// require('./vuejs');
+
+const selectElement = document.getElementById('gamme_id');
+
+if (selectElement != null) {
+ selectElement.addEventListener('change', (event) => {
+ let selectSubRange = document.getElementById('sous_gamme_id');
+ let length = selectSubRange.options.length;
+ for (i = length - 1; i > 0; i--) {
+ selectSubRange.options[i] = null;
+ }
+ });
+}
diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js
new file mode 100644
index 0000000..63605fa
--- /dev/null
+++ b/resources/js/bootstrap.js
@@ -0,0 +1,41 @@
+window._ = require('lodash');
+
+/**
+ * We'll load jQuery and the Bootstrap jQuery plugin which provides support
+ * for JavaScript based Bootstrap features such as modals and tabs. This
+ * code may be modified to fit the specific needs of your application.
+ */
+
+try {
+ window.Popper = require('popper.js').default;
+ window.$ = window.jQuery = require('jquery');
+
+ require('bootstrap');
+} catch (e) {}
+
+/**
+ * We'll load the axios HTTP library which allows us to easily issue requests
+ * to our Laravel back-end. This library automatically handles sending the
+ * CSRF token as a header based on the value of the "XSRF" token cookie.
+ */
+
+window.axios = require('axios');
+
+window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
+
+/**
+ * Echo exposes an expressive API for subscribing to channels and listening
+ * for events that are broadcast by Laravel. Echo and event broadcasting
+ * allows your team to easily build robust real-time web applications.
+ */
+
+// import Echo from 'laravel-echo';
+
+// window.Pusher = require('pusher-js');
+
+// window.Echo = new Echo({
+// broadcaster: 'pusher',
+// key: process.env.MIX_PUSHER_APP_KEY,
+// cluster: process.env.MIX_PUSHER_APP_CLUSTER,
+// forceTLS: true
+// });
diff --git a/resources/js/caroussel.js b/resources/js/frontend/caroussel.js
similarity index 87%
rename from resources/js/caroussel.js
rename to resources/js/frontend/caroussel.js
index 53c333f..e1f2b19 100644
--- a/resources/js/caroussel.js
+++ b/resources/js/frontend/caroussel.js
@@ -1,6 +1,6 @@
/*js doc*/
-class Carrousel {
+export class Carrousel {
/**
*
* This callback type is called 'requestCallback' and is displayed as a global symbol
@@ -21,12 +21,14 @@ class Carrousel {
* @param {boolean} [options.navigation=true]
*/
- constructor (element, options = {}) {
+ constructor(element, options = {}) {
this.element = element
this.options = Object.assign({}, {
slidesToScroll: 1,
slidesVisible: 1,
- loop: false,
+ loop: true,
+ play: true,
+ interval: 3000,
pagination: false,
navigation: true
}, options)
@@ -34,7 +36,7 @@ class Carrousel {
this.isMobile = false
this.currentItem = 0
this.moveCallbacks = []
-
+
//Modification du DOM
this.root = this.createDivWithClass('carrousel')
this.container = this.createDivWithClass('carrousel__container')
@@ -43,7 +45,7 @@ class Carrousel {
this.element.appendChild(this.root)
this.items = children.map((child) => {
let item = this.createDivWithClass('carrousel__item')
-
+
item.appendChild(child)
this.container.appendChild(item)
return item
@@ -61,33 +63,39 @@ class Carrousel {
this.onWindowResize()
window.addEventListener('resize', this.onWindowResize.bind(this))
this.root.addEventListener('keyup', e => {
- if(e.key === 'ArrowRight' || e.key === 'Right') {
+ if (e.key === 'ArrowRight' || e.key === 'Right') {
this.next()
} else if (e.key === 'ArrowLeft' || e.key === 'Left') {
this.prev()
}
})
+
+ // Interval
+ if (this.options.play) {
+ let playpause = setInterval(() => this.next(), this.options.interval);
+ }
}
/**
* Applique les bonnes dimensions aux éléments du carrousel
*/
- setStyle () {
+ setStyle() {
let ratio = this.items.length / this.slidesVisible
this.container.style.width = (ratio * 100) + "%"
this.items.forEach(item => item.style.width = ((100 / this.slidesVisible) / ratio) + "%")
}
- /**
- * Créer les flêches de navigation dans le DOM
- */
- createNavigation () {
+ /**
+ * Créer les flêches de navigation dans le DOM
+ */
+ createNavigation() {
let nextButton = this.createDivWithClass('carrousel__next')
let prevButton = this.createDivWithClass('carrousel__prev')
this.root.appendChild(nextButton)
this.root.appendChild(prevButton)
nextButton.addEventListener('click', this.next.bind(this))
prevButton.addEventListener('click', this.prev.bind(this))
+
if (this.options.loop === true) {
return
}
@@ -97,7 +105,7 @@ class Carrousel {
} else {
prevButton.classList.remove('carrousel__prev--hidden')
}
- if (this.items[this.currentItem + this.slidesVisible] === undefined){
+ if (this.items[this.currentItem + this.slidesVisible] === undefined) {
nextButton.classList.add('carrousel__next--hidden')
} else {
nextButton.classList.remove('carrousel__next--hidden')
@@ -108,7 +116,7 @@ class Carrousel {
/**
* Créer la pagination dans le DOM
*/
- createPagination () {
+ createPagination() {
let pagination = this.createDivWithClass('carrousel__pagination')
let buttons = []
this.root.appendChild(pagination)
@@ -127,11 +135,11 @@ class Carrousel {
})
}
- next () {
+ next() {
this.gotoItem(this.currentItem + this.slidesToScroll)
}
- prev () {
+ prev() {
this.gotoItem(this.currentItem - this.slidesToScroll)
}
@@ -139,7 +147,7 @@ class Carrousel {
* Déplace le carrousel vers l'élément ciblé
* @param {number} index
*/
- gotoItem (index) {
+ gotoItem(index) {
if (index < 0) {
if (this.options.loop) {
index = this.items.length - this.slidesVisible
@@ -163,11 +171,11 @@ class Carrousel {
*
* @param {moveCallback} cb
*/
- onMove (cb) {
+ onMove(cb) {
this.moveCallbacks.push(cb)
}
- onWindowResize () {
+ onWindowResize() {
let mobile = window.innerWidth < 800
if (mobile !== this.isMobile) {
this.isMobile = mobile
@@ -181,7 +189,7 @@ class Carrousel {
* @param {string} className
* @returns {HTMLElement}
*/
- createDivWithClass (className) {
+ createDivWithClass(className) {
let div = document.createElement('div')
div.setAttribute('class', className)
return div
@@ -190,14 +198,14 @@ class Carrousel {
/**
* @returns {number}
*/
- get slidesToScroll () {
+ get slidesToScroll() {
return this.isMobile ? 1 : this.options.slidesToScroll
}
/**
* @returns {number}
*/
- get slidesVisible () {
+ get slidesVisible() {
return this.isMobile ? 1 : this.options.slidesVisible
}
@@ -205,15 +213,15 @@ class Carrousel {
document.addEventListener('DOMContentLoaded', function () {
- if (document.querySelector('#carrousel1')){
+ if (document.querySelector('#carrousel1')) {
new Carrousel(document.querySelector('#carrousel1'), {
pagination: true,
- navigation:false,
+ navigation: false,
})
}
- if (document.querySelector('#carrousel2')){
- new Carrousel(document.querySelector('#carrousel2'), { })
+ if (document.querySelector('#carrousel2')) {
+ new Carrousel(document.querySelector('#carrousel2'), {})
}
-})
\ No newline at end of file
+})
\ No newline at end of file
diff --git a/resources/js/frontend/custom.js b/resources/js/frontend/custom.js
new file mode 100644
index 0000000..a955afa
--- /dev/null
+++ b/resources/js/frontend/custom.js
@@ -0,0 +1,178 @@
+function docReady(fn) {
+ // see if DOM is already available
+ if (document.readyState === "complete" || document.readyState === "interactive") {
+ // call on next available tick
+ setTimeout(fn, 1);
+ } else {
+ document.addEventListener("DOMContentLoaded", fn);
+ }
+}
+
+docReady(function () {
+ // DOM is loaded and ready for manipulation here
+
+ window.onscroll = function () {
+ let imgZoom = document.querySelectorAll('.img-zoom');
+ let index = 0;
+ if (
+ document.body.scrollTop > 50 ||
+ document.documentElement.scrollTop > 50
+ ) {
+ document.getElementById("backtotop").style.display = "flex";
+ for (index = 0; index < imgZoom.length; index++) {
+ imgZoom[index].classList.add('zoomed');
+ }
+ } else {
+ document.getElementById("backtotop").style.display = "none";
+ for (index = 0; index < imgZoom.length; index++) {
+ imgZoom[index].classList.remove('zoomed');
+ }
+ }
+ };
+
+ document
+ .getElementById("backtotop")
+ .addEventListener("click", function () {
+ window.scrollTo({
+ top: 0,
+ behavior: "smooth",
+ });
+ });
+
+ let eltsTitle = document.getElementsByClassName("menu__link");
+ for (let ii = 0; ii < eltsTitle.length; ii++) {
+ // eltsTitle[ii].classList.remove('red-color');
+ eltsTitle[ii].addEventListener("click", function () {
+ this.classList.add('red-color');
+ });
+ }
+
+ // FONCTION PERMETTANT DE FAIRE UN EFFET ANIMATION AU DEFILEMENT
+ const ratio = 0.1; // 10% du div revelé pour rendre visible
+ const options = {
+ root: null, // Zone d'affichage : null = le viewport
+ rootMargin: "0px",
+ threshold: ratio,
+ };
+ var animArray = [
+ "bounce",
+ "flash",
+ "pulse",
+ "rubberBand",
+ "shakeX",
+ "shakeY",
+ "headShake",
+ "swing",
+ "tada",
+ "wobble",
+ "jello",
+ "heartBeat",
+ "backInDown",
+ "backInLeft",
+ "backInRight",
+ "backInUp",
+ "backOutDown",
+ "backOutLeft",
+ "backOutRight",
+ "backOutUp",
+ "bounceIn",
+ "bounceInDown",
+ "bounceInLeft",
+ "bounceInRight",
+ "bounceInUp",
+ "bounceOut",
+ "bounceOutDown",
+ "bounceOutLeft",
+ "bounceOutRight",
+ "bounceOutUp",
+ "fadeIn",
+ "fadeInDown",
+ "fadeInDownBig",
+ "fadeInLeft",
+ "fadeInLeftBig",
+ "fadeInRight",
+ "fadeInRightBig",
+ "fadeInUp",
+ "fadeInUpBig",
+ "fadeInTopLeft",
+ "fadeInTopRight",
+ "fadeInBottomLeft",
+ "fadeInBottomRight",
+ "fadeOut",
+ "fadeOutDown",
+ "fadeOutDownBig",
+ "fadeOutLeft",
+ "fadeOutLeftBig",
+ "fadeOutRight",
+ "fadeOutRightBig",
+ "fadeOutUp",
+ "fadeOutUpBig",
+ "fadeOutTopLeft",
+ "fadeOutTopRight",
+ "fadeOutBottomRight",
+ "fadeOutBottomLeft",
+ "flip",
+ "flipInX",
+ "flipInY",
+ "flipOutX",
+ "flipOutY",
+ "lightSpeedInRight",
+ "lightSpeedInLeft",
+ "lightSpeedOutRight",
+ "lightSpeedOutLeft",
+ "rotateIn",
+ "rotateInDownLeft",
+ "rotateInDownRight",
+ "rotateInUpLeft",
+ "rotateInUpRight",
+ "rotateOut",
+ "rotateOutDownLeft",
+ "rotateOutDownRight",
+ "rotateOutUpLeft",
+ "rotateOutUpRight",
+ "hinge",
+ "jackInTheBox",
+ "rollIn",
+ "rollOut",
+ "zoomIn",
+ "zoomInDown",
+ "zoomInLeft",
+ "zoomInRight",
+ "zoomInUp",
+ "zoomOut",
+ "zoomOutDown",
+ "zoomOutLeft",
+ "zoomOutRight",
+ "zoomOutUp",
+ "slideInDown",
+ "slideInLeft",
+ "slideInRight",
+ "slideInUp",
+ "slideOutDown",
+ "slideOutLeft",
+ "slideOutRight",
+ "slideOutUp",
+ ];
+ /**
+ *
+ * @param {IntersectionObserverEntry[]} entries
+ * @param {IntersectionObserver} observer
+ */
+ const handleIntersect = function (entries, observer) {
+ entries.forEach(function (entry) {
+ if (entry.intersectionRatio > ratio) {
+ for (var i = 0; i < animArray.length; i++) {
+ if (entry.target.classList.contains(animArray[i])) {
+ entry.target.classList.add("animate__" + animArray[i]);
+ entry.target.classList.add("reveal-visible");
+ observer.unobserve(entry.target);
+ }
+ }
+ }
+ });
+ };
+ const observer = new IntersectionObserver(handleIntersect, options);
+ document.querySelectorAll(".animate__animated").forEach(function (r) {
+ observer.observe(r);
+ });
+});
diff --git a/resources/js/frontend/front.js b/resources/js/frontend/front.js
new file mode 100644
index 0000000..04fb7ab
--- /dev/null
+++ b/resources/js/frontend/front.js
@@ -0,0 +1,8 @@
+// cookie notice
+import { LdcwebCn } from "./ldcweb-cn.js";
+window.LdcwebCn = LdcwebCn;
+
+import { Carrousel } from "./caroussel.js"
+window.Carrousel = Carrousel;
+
+require('./custom');
diff --git a/resources/js/frontend/ldcweb-cn.js b/resources/js/frontend/ldcweb-cn.js
new file mode 100644
index 0000000..155fc84
--- /dev/null
+++ b/resources/js/frontend/ldcweb-cn.js
@@ -0,0 +1,370 @@
+/**
+ * LDC Service Web
+ * Version 1.3
+ */
+
+export class LdcwebCn {
+ constructor(config) {
+ this.config = config;
+ this.cookieContainer = document.getElementById("ldcweb-cn");
+ this.bannerContainer = document.getElementById("ldcweb-banner");
+ this.modalContainer = document.getElementById("ldcweb-cn-modal");
+ this.modalCloseBtn = document.getElementById("close-link");
+ this.acceptAllBtnBanner = document.getElementById(
+ "ldcweb-cn-accept-banner"
+ );
+ this.denyAllBtnBanner = document.getElementById("ldcweb-cn-deny-banner");
+ this.acceptAllBtn = document.getElementById("ldcweb-cn-accept");
+ this.denyAllBtn = document.getElementById("ldcweb-cn-deny");
+ this.personalizeBtn = document.getElementsByClassName(
+ "ldcweb-cn-personalize"
+ );
+ this.changeBtn = document.getElementsByClassName("ldcweb-cn-change");
+ this.cookiesList = document.getElementById("ldcweb-cn-list");
+ this.cookieLink = document.getElementsByClassName("ldcweb-cn-cookie-link");
+ this.template = document.getElementById("template").cloneNode(true);
+ document.getElementById("template").remove();
+
+ let cookies = this.getLDCWebCookie("ldcwebcn-init");
+ if (cookies === undefined) {
+ let newCookie = [];
+
+ for (const [key, value] of Object.entries(this.config)) {
+ newCookie.push(key + "=wait");
+ }
+
+ this.saveLDCWebCookie(newCookie);
+ this.cookieContainer.classList.add("open-banner");
+ } else {
+ let test = cookies.split(",");
+ test.forEach((elm) => {
+ let test = elm.split("=");
+ if (test[1] === "wait") {
+ this.cookieContainer.classList.add("open-banner");
+ }
+ });
+ }
+ this.modalCloseBtn.addEventListener(
+ "click",
+ function (e) {
+ e.preventDefault();
+ let cookies = this.getLDCWebCookie("ldcwebcn-init");
+ let test = cookies.split(",");
+ let bIsCompleted = true;
+ for (let item of test) {
+ if (item.indexOf("=wait") !== -1) {
+ bIsCompleted = false;
+ break;
+ }
+ }
+ if (bIsCompleted) {
+ this.cookieContainer.classList.remove("open-modal");
+ this.cookieContainer.classList.remove("open-banner");
+ } else {
+ alert(
+ "Vous devez renseigner votre choix pour tous les cookies, svp."
+ );
+ }
+ }.bind(this)
+ );
+ let accept = function (e) {
+ e.preventDefault();
+ for (const [key, value] of Object.entries(this.config)) {
+ this.addCookie(key, value);
+ }
+ for (let acceptLabel of this.cookieContainer.querySelectorAll(
+ ".accept > label"
+ )) {
+ acceptLabel.classList.add("active");
+ }
+ for (let denyLabel of this.cookieContainer.querySelectorAll(
+ ".deny > label"
+ )) {
+ denyLabel.classList.remove("active");
+ }
+ this.updateAllCookiesButtonsActiveStatus();
+ this.cookieContainer.classList.remove("open-modal");
+ this.cookieContainer.classList.remove("open-banner");
+ }.bind(this);
+ this.acceptAllBtnBanner.addEventListener("click", accept);
+ this.acceptAllBtn.addEventListener("click", accept);
+
+ let deny = function (e) {
+ e.preventDefault();
+ for (const [key, value] of Object.entries(this.config)) {
+ this.removeCookie(key, value);
+ }
+ for (let acceptLabel of this.cookieContainer.querySelectorAll(
+ ".accept > label"
+ )) {
+ acceptLabel.classList.remove("active");
+ }
+ for (let denyLabel of this.cookieContainer.querySelectorAll(
+ ".deny > label"
+ )) {
+ denyLabel.classList.add("active");
+ }
+ this.updateAllCookiesButtonsActiveStatus();
+ this.cookieContainer.classList.remove("open-modal");
+ this.cookieContainer.classList.remove("open-banner");
+ }.bind(this);
+ this.denyAllBtnBanner.addEventListener("click", deny);
+ this.denyAllBtn.addEventListener("click", deny);
+
+ for (let item of this.cookieLink) {
+ this.addEvent(
+ item,
+ "click",
+ function (e) {
+ e.preventDefault();
+ this.openModal();
+ }.bind(this)
+ );
+ }
+
+ for (let item of this.personalizeBtn) {
+ this.addEvent(
+ item,
+ "click",
+ function (e) {
+ e.preventDefault();
+ this.setCookieList();
+ }.bind(this)
+ );
+ }
+
+ this.setListenerOnChange();
+
+ let cookie = this.getLDCWebCookie("ldcwebcn-init");
+ let test = cookie.split(",");
+ test.forEach((elm) => {
+ let test = elm.split("=");
+ if (test[1] === "true") {
+ this.config[test[0]].script();
+ } else {
+ if (this.config[test[0]].fallback !== undefined) {
+ this.config[test[0]].fallback();
+ }
+ }
+ });
+
+ this.updateAllCookiesButtonsActiveStatus();
+ }
+
+ setCookieList() {
+ this.cookiesList.innerHTML = "";
+ let cookiesSite = this.getLDCWebCookie("ldcwebcn-init");
+ let acceptInputEvent = function (acceptLabel, denyLabel, key, value) {
+ return function (e) {
+ acceptLabel.classList.add("active");
+ denyLabel.classList.remove("active");
+ this.updateAllCookiesButtonsActiveStatus();
+ this.addCookie(key, value);
+ }.bind(this, [acceptLabel, denyLabel, key, value]);
+ };
+ let denyInputEvent = function (acceptLabel, denyLabel, key, value) {
+ return function (e) {
+ acceptLabel.classList.remove("active");
+ denyLabel.classList.add("active");
+ this.updateAllCookiesButtonsActiveStatus();
+ this.removeCookie(key, value);
+ }.bind(this, [acceptLabel, denyLabel, key, value]);
+ };
+
+ for (const [key, value] of Object.entries(this.config)) {
+ let cookie = document.createElement("li");
+ cookie.append(this.template.children.item(0).cloneNode(true));
+ let name = cookie.querySelector("span.ldcweb-cn-name");
+ let description = cookie.querySelector("span.ldcweb-cn-description");
+ let link = cookie.querySelector("a.ldcweb-cn-link");
+ let acceptInput = cookie.querySelector(".accept > input");
+ let denyInput = cookie.querySelector(".deny > input");
+ let acceptLabel = cookie.querySelector(".accept > label");
+ let denyLabel = cookie.querySelector(".deny > label");
+
+ name.textContent = value.name;
+ description.textContent = value.description;
+ link.textContent = value.labelLink;
+ link.setAttribute("href", value.link);
+ acceptInput.id = key + "1";
+ acceptInput.name = key;
+ acceptInput.dataset.name = key;
+ acceptLabel.htmlFor = key + "1";
+ denyInput.id = key + "2";
+ denyInput.name = key;
+ denyInput.dataset.name = key;
+ denyLabel.htmlFor = key + "2";
+
+ acceptInput.addEventListener(
+ "click",
+ acceptInputEvent.apply(this, [acceptLabel, denyLabel, key, value])
+ );
+ denyInput.addEventListener(
+ "click",
+ denyInputEvent.apply(this, [acceptLabel, denyLabel, key, value])
+ );
+
+ this.cookiesList.append(cookie);
+
+ let cookiesArray = cookiesSite.split(",");
+ for (const cookieEl of cookiesArray) {
+ let name = cookieEl.slice(0, cookieEl.indexOf("="));
+ let status = cookieEl.slice(cookieEl.indexOf("=") + 1);
+ if (name === key) {
+ acceptLabel.classList.remove("active");
+ denyLabel.classList.remove("active");
+ switch (status) {
+ case "true":
+ acceptLabel.classList.add("active");
+ break;
+ case "false":
+ denyLabel.classList.add("active");
+ break;
+ }
+ }
+ if (status === "wait") {
+ this.cookieContainer.classList.add("open-banner");
+ }
+ }
+ }
+
+ this.cookieContainer.classList.add("open-modal");
+ this.setListenerOnChange();
+ }
+
+ updateAllCookiesButtonsActiveStatus() {
+ let acceptsButtons =
+ this.cookieContainer.querySelectorAll("div.accept > label");
+ let deniesButtons =
+ this.cookieContainer.querySelectorAll("div.deny > label");
+ let activeAcceptsButtons = this.cookieContainer.querySelectorAll(
+ "div.accept > label.active"
+ );
+ let activeDeniesButtons = this.cookieContainer.querySelectorAll(
+ "div.deny > label.active"
+ );
+
+ this.acceptAllBtn.classList.remove("active");
+ this.denyAllBtn.classList.remove("active");
+ if (
+ acceptsButtons.length &&
+ acceptsButtons.length === activeAcceptsButtons.length
+ ) {
+ this.acceptAllBtn.classList.add("active");
+ }
+ if (
+ deniesButtons.length &&
+ deniesButtons.length === activeDeniesButtons.length
+ ) {
+ this.denyAllBtn.classList.add("active");
+ }
+ }
+
+ addCookie(key, value) {
+ if (value.script) {
+ value.script();
+ }
+ this.changeStatus(key, "true");
+ }
+
+ removeCookie(key, value) {
+ for (let cookieName of value.cookies) {
+ this.deleteBrowserCookie(cookieName, "/", "." + location.host);
+ }
+ if (document.getElementById(key)) {
+ document.getElementById(key).remove();
+ }
+ this.changeStatus(key, "false");
+ }
+ setListenerOnChange() {
+ this.changeBtn = document.getElementsByClassName("ldcweb-cn-change");
+ let itemClick = function (item) {
+ return function () {
+ this.changeStatus(
+ item.getAttribute("data-name"),
+ item.getAttribute("data-status")
+ );
+ }.bind(this);
+ };
+ for (let item of this.changeBtn) {
+ this.addEvent(item, "click", itemClick.bind(this, [item]));
+ }
+ }
+
+ changeStatus(name, status) {
+ let newCookie = [];
+
+ let cookie = this.getLDCWebCookie("ldcwebcn-init");
+ let test = cookie.split(",");
+ test.forEach((elm) => {
+ let test = elm.split("=");
+ if (test[0] === name) {
+ newCookie.push(name + "=" + status);
+ if (status === "false") {
+ this.config[test[0]].cookies.forEach((elm) => {
+ let cookies = this.getLDCWebCookie(elm);
+ if (cookies !== undefined) {
+ document.cookie =
+ elm +
+ "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=" +
+ document.domain +
+ "; path=/";
+ document.cookie =
+ elm +
+ "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=." +
+ document.domain +
+ "; path=/";
+ }
+ });
+ }
+ } else {
+ newCookie.push(elm);
+ }
+ });
+
+ this.saveLDCWebCookie(newCookie);
+ }
+
+ deleteBrowserCookie(name, path, domain) {
+ if (this.getLDCWebCookie(name)) {
+ document.cookie =
+ name +
+ "=" +
+ (path ? ";path=" + path : "") +
+ (domain ? ";domain=" + domain : "") +
+ ";expires=Thu, 01 Jan 1970 00:00:01 GMT";
+ }
+ }
+
+ getLDCWebCookie(name) {
+ let matches = document.cookie.match(
+ new RegExp(
+ "(?:^|; )" +
+ name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, "\\$1") +
+ "=([^;]*)"
+ )
+ );
+ return matches ? decodeURIComponent(matches[1]) : undefined;
+ }
+
+ addEvent(element, evnt, funct) {
+ if (element.attachEvent) return element.attachEvent("on" + evnt, funct);
+ else return element.addEventListener(evnt, funct, false);
+ }
+
+ saveLDCWebCookie(content) {
+ let date = new Date();
+ let newDate = new Date(date.setMonth(date.getMonth() + 13));
+ document.cookie =
+ "ldcwebcn-init=" +
+ content +
+ "; expires=" +
+ newDate.toUTCString() +
+ "; path=/;";
+ }
+
+ openModal() {
+ this.setCookieList();
+ this.updateAllCookiesButtonsActiveStatus();
+ }
+}
diff --git a/resources/js/vuejs.js b/resources/js/vuejs.js
new file mode 100644
index 0000000..f07e539
--- /dev/null
+++ b/resources/js/vuejs.js
@@ -0,0 +1,31 @@
+window.__IDHALALVue = require('vue').default;
+import vSelect from 'vue-select'
+__IDHALALVue.component('v-select', vSelect);
+
+// register modules
+const modules = require.context("./modules", true, /\.js$/i);
+modules.keys().map(key => __IDHALALVue.mixin(modules(key).default));
+
+// Register components
+const vues = require.context("./components/backend", true, /\.vue$/i);
+vues.keys().map(key =>
+ __IDHALALVue.component(
+ key
+ .split("/")
+ .pop()
+ .split(".")[0]
+ .replace(/\.?([A-Z])/g, function (x, y) {
+ return "-" + y.toLowerCase();
+ })
+ .replace(/^-/, "")
+ .replace("-component", ""),
+ vues(key).default
+ )
+);
+const vuejsModules = [];
+
+document.getElementsByClassName('idhalal-vuejs').forEach(element => {
+ vuejsModules.push(new __IDHALALVue({
+ el: element
+ }));
+});
diff --git a/resources/lang/en.json b/resources/lang/en.json
new file mode 100644
index 0000000..c120df9
--- /dev/null
+++ b/resources/lang/en.json
@@ -0,0 +1,88 @@
+{
+ "Marque": "Brand",
+ "Produits": "Products",
+ "Actualités": "News",
+ "Accueil": "Home",
+ "Qui sommes-nous": "About us",
+ "Les produits": "products",
+ "Doux": "Doux",
+ "Résultats": "Results",
+ "Découvrez DOUX, des produits de volailles françaises.": "",
+ "Notre Histoire": "",
+ "Nous contacter": "",
+ "Adresse": "",
+ "Votre message a bien été envoyé !": "",
+ "Nos services mettent tout en oeuvre pour y répondre au plus vite.": "",
+ "Oups ! Une erreur s’est produite...": "",
+ "Votre message n’a pas pu être envoyé. Nous en sommes désolés et vous prions de bien vouloir réessayer plus tard.": "",
+ "Vos coordonnées": "",
+ "Monsieur": "",
+ "Madame": "",
+ "Nom": "",
+ "Prénom": "",
+ "Code postal": "",
+ "Ville": "",
+ "Téléphone": "",
+ "Email": "",
+ "Préciser votre demande": "",
+ "Réclamation produit": "",
+ "La marque": "",
+ "Contact commercial": "",
+ "Autre demande": "",
+ "Nom du produit": "",
+ "Code barre": "",
+ "Lieu d'achat": "",
+ "Numéro de lot": "",
+ "Date Limite de Consommation": "",
+ "Date de consommation": "",
+ "Message": "",
+ "Photo de l'emballage": "",
+ "Insérer une pièce jointe": "",
+ "Food service": "",
+ "En savoir plus": "",
+ "Nous travaillons toujours pour améliorer nos recettes et proposer des produits de meilleur qualité": "",
+ "Découvrir": "",
+ "Nos gammes produits": "",
+ "Toutes nos gammes": "",
+ "Des produits incontournables, Authentiques et Innovants !": "",
+ "Gammes": "",
+ "Poulet, Cordon bleu ou Wing's ?": "",
+ "Découvrez tous nos produits à base de volaille.": "",
+ "les +<\/span>Produit<\/span>": "Product<\/span>benefits<\/span>",
+ "Cuisiner en famille": "",
+ "Poulet rôti": "",
+ "Grignottes de poulet": "",
+ "Cuisine de chef": "",
+ "Suggestion de poulet frit": "",
+ "Mentions légales": "",
+ "Charte de confidentialité": "",
+ "Plan du site": "",
+ "Contact": "",
+ "Gestion des cookies": "",
+ "Recherchez un produit": "",
+ "Une question ? Une idée ? Un conseil ? Des informations sur nos produits ?": "",
+ "N’hésitez-pas à nous contacter en renseignant le formulaire ci-dessous. Nous traiterons votre demande avec la plus grande attention dans les meilleurs délais.": "N’hésitez-pas à nous contacter en renseignant le formulaire ci-dessous. Nous traiterons votre demande avec la plus grande attention dans les meilleurs délais.",
+ "Doux, La référence française de la volaille": "",
+ "Sélectionnez un pays": "",
+ "Sélectionnez un département": "",
+ "Guadeloupe": "",
+ "Martinique": "",
+ "Guyane": "",
+ "La Réunion": "",
+ "Mayotte": "",
+ "Saint-Pierre-et-Miquelon": "",
+ "Saint-Barthélémy": "",
+ "Saint-Martin": "",
+ "Polynésie française": "",
+ "Île de Clipperton": "",
+ "Wallis-et-Futuna": "",
+ "Nouvelle-Calédonie": "",
+ "Terres australes et antarctiques françaises": "",
+ "Doux Food Services": "",
+ "Tous les produits Doux": "",
+ "Les actualités Doux": "",
+ "Nos conseils ...": "Advice ...",
+ "les questions<\/span> utiles<\/span>": "Usefull<\/span> questions<\/span>",
+ "Nos nouveautés": "",
+ "Nous travaillons toujours pour améliorer nos recettes et proposer des produits de meilleure qualité": ""
+}
diff --git a/resources/lang/en/enums.php b/resources/lang/en/enums.php
new file mode 100644
index 0000000..bbd4145
--- /dev/null
+++ b/resources/lang/en/enums.php
@@ -0,0 +1,21 @@
+
+ array (
+ 'kid' => 'kid',
+ 'man' => 'man',
+ 'senior' => 'senior',
+ 'teenager' => 'teenager',
+ 'withPrefix' =>
+ array (
+ 'kid' => 'a kid',
+ 'man' => 'a man',
+ 'senior' => 'a senior',
+ 'teenager' => 'a teenager',
+ 'woman' => 'a woman',
+ ),
+ 'woman' => 'woman',
+ ),
+ 'kid' => 'kid',
+);
diff --git a/resources/lang/en/home.php b/resources/lang/en/home.php
new file mode 100644
index 0000000..2cbf216
--- /dev/null
+++ b/resources/lang/en/home.php
@@ -0,0 +1,8 @@
+
+ array (
+ 'text' => '',
+ ),
+);
diff --git a/resources/lang/en/rgpd.php b/resources/lang/en/rgpd.php
new file mode 100644
index 0000000..1b3d53b
--- /dev/null
+++ b/resources/lang/en/rgpd.php
@@ -0,0 +1,37 @@
+
+ array (
+ 'desc' => '',
+ 'title' => 'Google Analytics',
+ ),
+ 'banner' =>
+ array (
+ 'desc' => '',
+ 'title' => '',
+ ),
+ 'contact' =>
+ array (
+ 'acceptcgu' => '',
+ 'disclaimer' => '',
+ ),
+ 'cookie' =>
+ array (
+ 'allow' => '',
+ 'deny' => '',
+ ),
+ 'cookies' =>
+ array (
+ 'acceptall' => '',
+ 'allowall' => '',
+ 'denyall' => '',
+ 'personalize' => '',
+ 'settignsall' => '',
+ ),
+ 'manage' =>
+ array (
+ 'explain' => '',
+ 'title' => '',
+ ),
+);
diff --git a/resources/lang/en/urls.php b/resources/lang/en/urls.php
new file mode 100644
index 0000000..896ad13
--- /dev/null
+++ b/resources/lang/en/urls.php
@@ -0,0 +1,14 @@
+ 'contact',
+ 'food-service' => 'food-service',
+ 'gamme' => 'category',
+ 'gammes' => 'products',
+ 'legals' => 'terms-and-conditions',
+ 'marque' => 'brand',
+ 'news' => 'news',
+ 'policy' => 'privacy-policy',
+ 'produit' => 'product',
+ 'search' => 'search',
+);
diff --git a/resources/lang/es.json b/resources/lang/es.json
new file mode 100644
index 0000000..59c5083
--- /dev/null
+++ b/resources/lang/es.json
@@ -0,0 +1,88 @@
+{
+ "Marque": "Marca",
+ "Produits": "productos",
+ "Actualités": "Noticias",
+ "Accueil": "",
+ "Découvrez DOUX, des produits de volailles françaises.": "",
+ "Qui sommes-nous": "",
+ "Notre Histoire": "",
+ "Nous contacter": "",
+ "Adresse": "",
+ "Votre message a bien été envoyé !": "",
+ "Nos services mettent tout en oeuvre pour y répondre au plus vite.": "",
+ "Oups ! Une erreur s’est produite...": "",
+ "Votre message n’a pas pu être envoyé. Nous en sommes désolés et vous prions de bien vouloir réessayer plus tard.": "",
+ "Vos coordonnées": "",
+ "Monsieur": "",
+ "Madame": "",
+ "Nom": "",
+ "Prénom": "",
+ "Code postal": "",
+ "Ville": "",
+ "Téléphone": "",
+ "Email": "",
+ "Préciser votre demande": "",
+ "Réclamation produit": "",
+ "La marque": "",
+ "Contact commercial": "",
+ "Autre demande": "",
+ "Nom du produit": "",
+ "Code barre": "",
+ "Lieu d'achat": "",
+ "Numéro de lot": "",
+ "Date Limite de Consommation": "",
+ "Date de consommation": "",
+ "Message": "",
+ "Photo de l'emballage": "",
+ "Insérer une pièce jointe": "",
+ "Food service": "",
+ "En savoir plus": "",
+ "Les produits": "",
+ "Nous travaillons toujours pour améliorer nos recettes et proposer des produits de meilleur qualité": "",
+ "Découvrir": "",
+ "Nos gammes produits": "",
+ "Toutes nos gammes": "",
+ "Des produits incontournables, Authentiques et Innovants !": "",
+ "Gammes": "",
+ "Poulet, Cordon bleu ou Wing's ?": "",
+ "Découvrez tous nos produits à base de volaille.": "",
+ "les +<\/span>Produit<\/span>": "Las ventajas<\/span>del producto<\/span>",
+ "Résultats": "",
+ "Cuisiner en famille": "",
+ "Poulet rôti": "",
+ "Grignottes de poulet": "",
+ "Cuisine de chef": "",
+ "Suggestion de poulet frit": "",
+ "Mentions légales": "",
+ "Charte de confidentialité": "",
+ "Plan du site": "",
+ "Contact": "",
+ "Gestion des cookies": "",
+ "Recherchez un produit": "",
+ "Doux": "",
+ "Une question ? Une idée ? Un conseil ? Des informations sur nos produits ?": "",
+ "N’hésitez-pas à nous contacter en renseignant le formulaire ci-dessous. Nous traiterons votre demande avec la plus grande attention dans les meilleurs délais.": "",
+ "Doux, La référence française de la volaille": "",
+ "Sélectionnez un pays": "",
+ "Sélectionnez un département": "",
+ "Guadeloupe": "",
+ "Martinique": "",
+ "Guyane": "",
+ "La Réunion": "",
+ "Mayotte": "",
+ "Saint-Pierre-et-Miquelon": "",
+ "Saint-Barthélémy": "",
+ "Saint-Martin": "",
+ "Polynésie française": "",
+ "Île de Clipperton": "",
+ "Wallis-et-Futuna": "",
+ "Nouvelle-Calédonie": "",
+ "Terres australes et antarctiques françaises": "",
+ "Doux Food Services": "",
+ "Tous les produits Doux": "",
+ "Les actualités Doux": "",
+ "Nos conseils ...": "",
+ "les questions<\/span> utiles<\/span>": "",
+ "Nos nouveautés": "",
+ "Nous travaillons toujours pour améliorer nos recettes et proposer des produits de meilleure qualité": ""
+}
diff --git a/resources/lang/es/auth.php b/resources/lang/es/auth.php
new file mode 100644
index 0000000..bf72ee2
--- /dev/null
+++ b/resources/lang/es/auth.php
@@ -0,0 +1,18 @@
+ 'Ces identifiants ne correspondent pas à nos enregistrements',
+ 'password' => 'Le mot de passe fourni est incorrect.',
+ 'throttle' => 'Tentatives de connexion trop nombreuses. Veuillez essayer de nouveau dans :seconds secondes.',
+];
diff --git a/resources/lang/es/enums.php b/resources/lang/es/enums.php
new file mode 100644
index 0000000..8b6e5d2
--- /dev/null
+++ b/resources/lang/es/enums.php
@@ -0,0 +1,19 @@
+ 'enfant',
+ 'balanced_menu_type' => [
+ 'kid' => 'enfant',
+ 'teenager' => 'adolescent',
+ 'woman' => 'femme',
+ 'man' => 'homme',
+ 'senior' => 'senior',
+ 'withPrefix' => [
+ 'kid' => 'un enfant',
+ 'teenager' => 'un adolescent',
+ 'woman' => 'une femme',
+ 'man' => 'un homme',
+ 'senior' => 'un senior'
+ ]
+ ]
+];
diff --git a/resources/lang/es/home.php b/resources/lang/es/home.php
new file mode 100644
index 0000000..2cbf216
--- /dev/null
+++ b/resources/lang/es/home.php
@@ -0,0 +1,8 @@
+
+ array (
+ 'text' => '',
+ ),
+);
diff --git a/resources/lang/es/pagination.php b/resources/lang/es/pagination.php
new file mode 100644
index 0000000..8c1080e
--- /dev/null
+++ b/resources/lang/es/pagination.php
@@ -0,0 +1,17 @@
+ '« Précédent',
+ 'next' => 'Suivant »',
+];
diff --git a/resources/lang/es/passwords.php b/resources/lang/es/passwords.php
new file mode 100644
index 0000000..2f898d3
--- /dev/null
+++ b/resources/lang/es/passwords.php
@@ -0,0 +1,20 @@
+ 'Votre mot de passe a été réinitialisé !',
+ 'sent' => 'Nous vous avons envoyé par email le lien de réinitialisation du mot de passe !',
+ 'throttled' => 'Veuillez patienter avant de réessayer.',
+ 'token' => "Ce jeton de réinitialisation du mot de passe n'est pas valide.",
+ 'user' => "Aucun utilisateur n'a été trouvé avec cette adresse email.",
+];
diff --git a/resources/lang/es/rgpd.php b/resources/lang/es/rgpd.php
new file mode 100644
index 0000000..9529253
--- /dev/null
+++ b/resources/lang/es/rgpd.php
@@ -0,0 +1,37 @@
+
+ array (
+ 'desc' => '',
+ 'title' => '',
+ ),
+ 'banner' =>
+ array (
+ 'desc' => '',
+ 'title' => '',
+ ),
+ 'contact' =>
+ array (
+ 'acceptcgu' => '',
+ 'disclaimer' => '',
+ ),
+ 'cookie' =>
+ array (
+ 'allow' => '',
+ 'deny' => '',
+ ),
+ 'cookies' =>
+ array (
+ 'acceptall' => '',
+ 'allowall' => '',
+ 'denyall' => '',
+ 'personalize' => '',
+ 'settignsall' => '',
+ ),
+ 'manage' =>
+ array (
+ 'explain' => '',
+ 'title' => '',
+ ),
+);
diff --git a/resources/lang/es/urls.php b/resources/lang/es/urls.php
new file mode 100644
index 0000000..95312e1
--- /dev/null
+++ b/resources/lang/es/urls.php
@@ -0,0 +1,14 @@
+ 'contacto',
+ 'food-service' => 'food-service',
+ 'gamme' => 'gama',
+ 'gammes' => 'productos',
+ 'legals' => 'terminos-y-condiciones-de-uso',
+ 'marque' => 'marca',
+ 'news' => 'noticias',
+ 'policy' => 'política-de-privacidad',
+ 'produit' => 'producto',
+ 'search' => 'buscar',
+);
diff --git a/resources/lang/es/validation.php b/resources/lang/es/validation.php
new file mode 100644
index 0000000..2e86fef
--- /dev/null
+++ b/resources/lang/es/validation.php
@@ -0,0 +1,187 @@
+ 'Le champ :attribute doit être accepté.',
+ 'active_url' => "Le champ :attribute n'est pas une URL valide.",
+ 'after' => 'Le champ :attribute doit être une date postérieure au :date.',
+ 'after_or_equal' => 'Le champ :attribute doit être une date postérieure ou égale au :date.',
+ 'alpha' => 'Le champ :attribute doit contenir uniquement des lettres.',
+ 'alpha_dash' => 'Le champ :attribute doit contenir uniquement des lettres, des chiffres et des tirets.',
+ 'alpha_num' => 'Le champ :attribute doit contenir uniquement des chiffres et des lettres.',
+ 'array' => 'Le champ :attribute doit être un tableau.',
+ 'before' => 'Le champ :attribute doit être une date antérieure au :date.',
+ 'before_or_equal' => 'Le champ :attribute doit être une date antérieure ou égale au :date.',
+ 'between' => [
+ 'numeric' => 'La valeur de :attribute doit être comprise entre :min et :max.',
+ 'file' => 'La taille du fichier de :attribute doit être comprise entre :min et :max kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir entre :min et :max caractères.',
+ 'array' => 'Le tableau :attribute doit contenir entre :min et :max éléments.',
+ ],
+ 'boolean' => 'Le champ :attribute doit être vrai ou faux.',
+ 'confirmed' => 'Le champ de confirmation :attribute ne correspond pas.',
+ 'date' => "Le champ :attribute n'est pas une date valide.",
+ 'date_equals' => 'Le champ :attribute doit être une date égale à :date.',
+ 'date_format' => 'Le champ :attribute ne correspond pas au format :format.',
+ 'different' => 'Les champs :attribute et :other doivent être différents.',
+ 'digits' => 'Le champ :attribute doit contenir :digits chiffres.',
+ 'digits_between' => 'Le champ :attribute doit contenir entre :min et :max chiffres.',
+ 'dimensions' => "La taille de l'image :attribute n'est pas conforme.",
+ 'distinct' => 'Le champ :attribute a une valeur en double.',
+ 'email' => 'Le champ :attribute doit être une adresse email valide.',
+ 'ends_with' => 'Le champ :attribute doit se terminer par une des valeurs suivantes : :values',
+ 'exists' => 'Le champ :attribute sélectionné est invalide.',
+ 'file' => 'Le champ :attribute doit être un fichier.',
+ 'filled' => 'Le champ :attribute doit avoir une valeur.',
+ 'gt' => [
+ 'numeric' => 'La valeur de :attribute doit être supérieure à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être supérieure à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir plus de :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir plus de :value éléments.',
+ ],
+ 'gte' => [
+ 'numeric' => 'La valeur de :attribute doit être supérieure ou égale à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être supérieure ou égale à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir au moins :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir au moins :value éléments.',
+ ],
+ 'image' => 'Le champ :attribute doit être une image.',
+ 'in' => 'Le champ :attribute est invalide.',
+ 'in_array' => "Le champ :attribute n'existe pas dans :other.",
+ 'integer' => 'Le champ :attribute doit être un entier.',
+ 'ip' => 'Le champ :attribute doit être une adresse IP valide.',
+ 'ipv4' => 'Le champ :attribute doit être une adresse IPv4 valide.',
+ 'ipv6' => 'Le champ :attribute doit être une adresse IPv6 valide.',
+ 'json' => 'Le champ :attribute doit être un document JSON valide.',
+ 'lt' => [
+ 'numeric' => 'La valeur de :attribute doit être inférieure à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être inférieure à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir moins de :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir moins de :value éléments.',
+ ],
+ 'lte' => [
+ 'numeric' => 'La valeur de :attribute doit être inférieure ou égale à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être inférieure ou égale à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir au plus :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir au plus :value éléments.',
+ ],
+ 'max' => [
+ 'numeric' => 'La valeur de :attribute ne peut être supérieure à :max.',
+ 'file' => 'La taille du fichier de :attribute ne peut pas dépasser :max kilo-octets.',
+ 'string' => 'Le texte de :attribute ne peut contenir plus de :max caractères.',
+ 'array' => 'Le tableau :attribute ne peut contenir plus de :max éléments.',
+ ],
+ 'mimes' => 'Le champ :attribute doit être un fichier de type : :values.',
+ 'mimetypes' => 'Le champ :attribute doit être un fichier de type : :values.',
+ 'min' => [
+ 'numeric' => 'La valeur de :attribute doit être supérieure ou égale à :min.',
+ 'file' => 'La taille du fichier de :attribute doit être supérieure à :min kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir au moins :min caractères.',
+ 'array' => 'Le tableau :attribute doit contenir au moins :min éléments.',
+ ],
+ 'multiple_of' => 'La valeur de :attribute doit être un multiple de :value',
+ 'not_in' => "Le champ :attribute sélectionné n'est pas valide.",
+ 'not_regex' => "Le format du champ :attribute n'est pas valide.",
+ 'numeric' => 'Le champ :attribute doit contenir un nombre.',
+ 'password' => 'Le mot de passe est incorrect',
+ 'present' => 'Le champ :attribute doit être présent.',
+ 'regex' => 'Le format du champ :attribute est invalide.',
+ 'required' => 'Le champ :attribute est obligatoire.',
+ 'required_if' => 'Le champ :attribute est obligatoire quand la valeur de :other est :value.',
+ 'required_unless' => 'Le champ :attribute est obligatoire sauf si :other est :values.',
+ 'required_with' => 'Le champ :attribute est obligatoire quand :values est présent.',
+ 'required_with_all' => 'Le champ :attribute est obligatoire quand :values sont présents.',
+ 'required_without' => "Le champ :attribute est obligatoire quand :values n'est pas présent.",
+ 'required_without_all' => "Le champ :attribute est requis quand aucun de :values n'est présent.",
+ 'same' => 'Les champs :attribute et :other doivent être identiques.',
+ 'size' => [
+ 'numeric' => 'La valeur de :attribute doit être :size.',
+ 'file' => 'La taille du fichier de :attribute doit être de :size kilo-octets.',
+ 'string' => 'Le texte de :attribute doit contenir :size caractères.',
+ 'array' => 'Le tableau :attribute doit contenir :size éléments.',
+ ],
+ 'starts_with' => 'Le champ :attribute doit commencer avec une des valeurs suivantes : :values',
+ 'string' => 'Le champ :attribute doit être une chaîne de caractères.',
+ 'timezone' => 'Le champ :attribute doit être un fuseau horaire valide.',
+ 'unique' => 'La valeur du champ :attribute est déjà utilisée.',
+ 'uploaded' => "Le fichier du champ :attribute n'a pu être téléversé.",
+ 'url' => "Le format de l'URL de :attribute n'est pas valide.",
+ 'uuid' => 'Le champ :attribute doit être un UUID valide',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify custom validation messages for attributes using the
+ | convention "attribute.rule" to name the lines. This makes it quick to
+ | specify a specific custom language line for a given attribute rule.
+ |
+ */
+
+ 'phone' => 'Le champ :attribute n\'est pas un numéro de téléphone valide.',
+
+ 'custom' => [
+ 'attribute-name' => [
+ 'rule-name' => 'custom-message',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Attributes
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used to swap attribute place-holders
+ | with something more reader friendly such as E-Mail Address instead
+ | of "email". This simply helps us make messages a little cleaner.
+ |
+ */
+
+ 'attributes' => [
+ 'name' => 'nom',
+ 'username' => "nom d'utilisateur",
+ 'email' => 'adresse email',
+ 'first_name' => 'prénom',
+ 'last_name' => 'nom',
+ 'password' => 'mot de passe',
+ 'password_confirmation' => 'confirmation du mot de passe',
+ 'city' => 'ville',
+ 'country' => 'pays',
+ 'address' => 'adresse',
+ 'phone' => 'téléphone',
+ 'mobile' => 'portable',
+ 'age' => 'âge',
+ 'sex' => 'sexe',
+ 'gender' => 'genre',
+ 'day' => 'jour',
+ 'month' => 'mois',
+ 'year' => 'année',
+ 'hour' => 'heure',
+ 'minute' => 'minute',
+ 'second' => 'seconde',
+ 'title' => 'titre',
+ 'content' => 'contenu',
+ 'description' => 'description',
+ 'excerpt' => 'extrait',
+ 'date' => 'date',
+ 'time' => 'heure',
+ 'available' => 'disponible',
+ 'size' => 'taille',
+ 'answers' => 'réponses',
+ 'answers.*' => 'réponse',
+ 'postal_code' => 'code postal',
+ 'picture' => 'image',
+ 'breeder_code' => 'code éleveur'
+ ],
+];
diff --git a/resources/lang/fr.json b/resources/lang/fr.json
new file mode 100644
index 0000000..860073e
--- /dev/null
+++ b/resources/lang/fr.json
@@ -0,0 +1,88 @@
+{
+ "Marque": "Marque",
+ "Produits": "Produits",
+ "Actualités": "Actualités",
+ "Accueil": "Accueil",
+ "Découvrez DOUX, des produits de volailles françaises.": "Découvrez DOUX, des produits de volailles françaises",
+ "Qui sommes-nous": "Qui sommes-nous",
+ "Les produits": "Les produits",
+ "Nous travaillons toujours pour améliorer nos recettes et proposer des produits de meilleur qualité": "Ne ratez aucune de nos nouveautés",
+ "Découvrir": "Découvrir",
+ "Nos gammes produits": "Nos gammes produits",
+ "Toutes nos gammes": "Les gammes disponibles",
+ "Des produits incontournables, Authentiques et Innovants !": "Parcourez nos gammes et trouvez les produits qui vous feront plaisir.",
+ "Doux": "Doux",
+ "Résultats": "Résultats",
+ "Mentions légales": "Mentions légales",
+ "Notre Histoire": "Depuis 1933 à vos côtés",
+ "Nous contacter": "",
+ "Adresse": "",
+ "Votre message a bien été envoyé !": "",
+ "Nos services mettent tout en oeuvre pour y répondre au plus vite.": "",
+ "Oups ! Une erreur s’est produite...": "",
+ "Votre message n’a pas pu être envoyé. Nous en sommes désolés et vous prions de bien vouloir réessayer plus tard.": "",
+ "Vos coordonnées": "",
+ "Monsieur": "",
+ "Madame": "",
+ "Nom": "",
+ "Prénom": "",
+ "Code postal": "",
+ "Ville": "",
+ "Téléphone": "",
+ "Email": "",
+ "Préciser votre demande": "",
+ "Réclamation produit": "",
+ "La marque": "",
+ "Contact commercial": "",
+ "Autre demande": "",
+ "Nom du produit": "",
+ "Code barre": "",
+ "Lieu d'achat": "",
+ "Numéro de lot": "",
+ "Date Limite de Consommation": "",
+ "Date de consommation": "",
+ "Message": "",
+ "Photo de l'emballage": "Photo de l'emballage",
+ "Insérer une pièce jointe": "",
+ "Food service": "",
+ "En savoir plus": "",
+ "Gammes": "",
+ "Poulet, Cordon bleu ou Wing's ?": "",
+ "Découvrez tous nos produits à base de volaille.": "",
+ "les +<\/span>Produit<\/span>": "les +<\/span>Produit<\/span>",
+ "Cuisiner en famille": "",
+ "Poulet rôti": "",
+ "Grignottes de poulet": "",
+ "Cuisine de chef": "",
+ "Suggestion de poulet frit": "",
+ "Charte de confidentialité": "",
+ "Plan du site": "",
+ "Contact": "",
+ "Gestion des cookies": "",
+ "Recherchez un produit": "",
+ "Une question ? Une idée ? Un conseil ? Des informations sur nos produits ?": "",
+ "N’hésitez-pas à nous contacter en renseignant le formulaire ci-dessous. Nous traiterons votre demande avec la plus grande attention dans les meilleurs délais.": "",
+ "Doux, La référence française de la volaille": "Doux, La référence française de la volaille",
+ "Sélectionnez un pays": "",
+ "Sélectionnez un département": "",
+ "Guadeloupe": "",
+ "Martinique": "",
+ "Guyane": "",
+ "La Réunion": "",
+ "Mayotte": "",
+ "Saint-Pierre-et-Miquelon": "",
+ "Saint-Barthélémy": "",
+ "Saint-Martin": "",
+ "Polynésie française": "",
+ "Île de Clipperton": "",
+ "Wallis-et-Futuna": "",
+ "Nouvelle-Calédonie": "",
+ "Terres australes et antarctiques françaises": "",
+ "Doux Food Services": "",
+ "Tous les produits Doux": "",
+ "Les actualités Doux": "",
+ "Nos conseils ...": "Nos conseils ...",
+ "les questions<\/span> utiles<\/span>": "les questions<\/span> utiles<\/span>",
+ "Nos nouveautés": "Produits à la une",
+ "Nous travaillons toujours pour améliorer nos recettes et proposer des produits de meilleure qualité": "Ne ratez aucune de nos nouveautés"
+}
\ No newline at end of file
diff --git a/resources/lang/fr/auth.php b/resources/lang/fr/auth.php
new file mode 100644
index 0000000..bf72ee2
--- /dev/null
+++ b/resources/lang/fr/auth.php
@@ -0,0 +1,18 @@
+ 'Ces identifiants ne correspondent pas à nos enregistrements',
+ 'password' => 'Le mot de passe fourni est incorrect.',
+ 'throttle' => 'Tentatives de connexion trop nombreuses. Veuillez essayer de nouveau dans :seconds secondes.',
+];
diff --git a/resources/lang/fr/enums.php b/resources/lang/fr/enums.php
new file mode 100644
index 0000000..8b6e5d2
--- /dev/null
+++ b/resources/lang/fr/enums.php
@@ -0,0 +1,19 @@
+ 'enfant',
+ 'balanced_menu_type' => [
+ 'kid' => 'enfant',
+ 'teenager' => 'adolescent',
+ 'woman' => 'femme',
+ 'man' => 'homme',
+ 'senior' => 'senior',
+ 'withPrefix' => [
+ 'kid' => 'un enfant',
+ 'teenager' => 'un adolescent',
+ 'woman' => 'une femme',
+ 'man' => 'un homme',
+ 'senior' => 'un senior'
+ ]
+ ]
+];
diff --git a/resources/lang/fr/home.php b/resources/lang/fr/home.php
new file mode 100644
index 0000000..2cbf216
--- /dev/null
+++ b/resources/lang/fr/home.php
@@ -0,0 +1,8 @@
+
+ array (
+ 'text' => '',
+ ),
+);
diff --git a/resources/lang/fr/pagination.php b/resources/lang/fr/pagination.php
new file mode 100644
index 0000000..8c1080e
--- /dev/null
+++ b/resources/lang/fr/pagination.php
@@ -0,0 +1,17 @@
+ '« Précédent',
+ 'next' => 'Suivant »',
+];
diff --git a/resources/lang/fr/passwords.php b/resources/lang/fr/passwords.php
new file mode 100644
index 0000000..2f898d3
--- /dev/null
+++ b/resources/lang/fr/passwords.php
@@ -0,0 +1,20 @@
+ 'Votre mot de passe a été réinitialisé !',
+ 'sent' => 'Nous vous avons envoyé par email le lien de réinitialisation du mot de passe !',
+ 'throttled' => 'Veuillez patienter avant de réessayer.',
+ 'token' => "Ce jeton de réinitialisation du mot de passe n'est pas valide.",
+ 'user' => "Aucun utilisateur n'a été trouvé avec cette adresse email.",
+];
diff --git a/resources/lang/fr/rgpd.php b/resources/lang/fr/rgpd.php
new file mode 100644
index 0000000..1537d66
--- /dev/null
+++ b/resources/lang/fr/rgpd.php
@@ -0,0 +1,44 @@
+
+ array (
+ 'desc' => 'Les services de mesure d\'audience permettent de générer des statistiques de fréquentation utiles à l\'amélioration du site.',
+ 'title' => 'MESURES D\'AUDIENCE - Google Analytics',
+ ),
+ 'banner' =>
+ array (
+ 'desc' => 'Ce site web stocke les cookies sur votre ordinateur. LDC utilise ces informations afin d’améliorer et de personnaliser votre expérience de navigation, ainsi que pour l\'analyse et les indicateurs concernant nos visiteurs à la fois sur ce site web et sur d\'autres supports.
+ Vous pouvez cliquer sur « Accepter » si vous consentez à l\'utilisation de ces cookies.
+ Si vous refusez l\'utilisation des cookies, vos informations ne seront pas suivies lors de votre visite sur ce site. Un cookie sera utilisé dans votre navigateur afin de se souvenir de ne pas suivre vos préférences. Certaines fonctionnalités ne seront pas accessibles.
+ Vous pouvez changer d’avis et modifier votre consentement à tout moment en revenant sur ce site.
+ Pour en savoir plus sur les cookies que nous utilisons, consultez notre politique de confidentialité.',
+ 'title' => 'Le respect de votre vie privée est notre priorité',
+ ),
+ 'contact' =>
+ array (
+ 'acceptcgu' => 'J’accepte les conditions générales d’utilisation du site et autorise la Société Bretonne de Volaille à traiter mes données personnelles conformément à la Charte de confidentialité.',
+ 'disclaimer' => 'Les informations que vous nous communiquez sont collectées et traitées par la Société Bretonne de Volaille, responsable de traitement selon les finalités définies dans notre Charte de confidentialité. Ces informations sont destinées au personnel de la Société Bretonne de Volaille et peuvent être partagées avec ses sous-traitants.
+ A tout moment, vous pouvez retirer votre consentement. Pour toute information complémentaire concernant vos données personnelles et vos droits, merci de consulter notre Charte de confidentialité.',
+ ),
+ 'cookie' =>
+ array (
+ 'allow' => 'Autoriser',
+ 'deny' => 'Interdire',
+ ),
+ 'cookies' =>
+ array (
+ 'acceptall' => 'OK, TOUT ACCEPTER',
+ 'allowall' => 'Autoriser tous les cookies',
+ 'denyall' => 'Interdire tous les cookies',
+ 'personalize' => 'Personnaliser',
+ 'settignsall' => 'Préférence pour tous les services',
+ ),
+ 'manage' =>
+ array (
+ 'explain' => 'Les fonctionnalités de ce site s’appuient sur des services proposés par des tiers.
+ Si vous acceptez, ces tiers déposeront des cookies qui vous permettront de visualiser sur le site du contenu hébergé par ces tiers.
+ Via ces cookies, ces tiers collecteront et utiliseront vos données de navigation pour des finalités qui leur sont propres, conformément à leur politique de confidentialité (lien ci-dessous). Cette page vous permet de donner ou de retirer votre consentement, soit globalement soit service par service.',
+ 'title' => 'Panneau de gestion des cookies',
+ ),
+);
diff --git a/resources/lang/fr/urls.php b/resources/lang/fr/urls.php
new file mode 100644
index 0000000..380afa5
--- /dev/null
+++ b/resources/lang/fr/urls.php
@@ -0,0 +1,14 @@
+ 'contact',
+ 'food-service' => 'food-service',
+ 'gamme' => 'gamme',
+ 'gammes' => 'gammes',
+ 'legals' => 'mentions-legales',
+ 'marque' => 'marque',
+ 'news' => 'actualites',
+ 'policy' => 'charte-confidentialite',
+ 'produit' => 'produit',
+ 'search' => 'recherche',
+);
diff --git a/resources/lang/fr/validation.php b/resources/lang/fr/validation.php
new file mode 100644
index 0000000..2e86fef
--- /dev/null
+++ b/resources/lang/fr/validation.php
@@ -0,0 +1,187 @@
+ 'Le champ :attribute doit être accepté.',
+ 'active_url' => "Le champ :attribute n'est pas une URL valide.",
+ 'after' => 'Le champ :attribute doit être une date postérieure au :date.',
+ 'after_or_equal' => 'Le champ :attribute doit être une date postérieure ou égale au :date.',
+ 'alpha' => 'Le champ :attribute doit contenir uniquement des lettres.',
+ 'alpha_dash' => 'Le champ :attribute doit contenir uniquement des lettres, des chiffres et des tirets.',
+ 'alpha_num' => 'Le champ :attribute doit contenir uniquement des chiffres et des lettres.',
+ 'array' => 'Le champ :attribute doit être un tableau.',
+ 'before' => 'Le champ :attribute doit être une date antérieure au :date.',
+ 'before_or_equal' => 'Le champ :attribute doit être une date antérieure ou égale au :date.',
+ 'between' => [
+ 'numeric' => 'La valeur de :attribute doit être comprise entre :min et :max.',
+ 'file' => 'La taille du fichier de :attribute doit être comprise entre :min et :max kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir entre :min et :max caractères.',
+ 'array' => 'Le tableau :attribute doit contenir entre :min et :max éléments.',
+ ],
+ 'boolean' => 'Le champ :attribute doit être vrai ou faux.',
+ 'confirmed' => 'Le champ de confirmation :attribute ne correspond pas.',
+ 'date' => "Le champ :attribute n'est pas une date valide.",
+ 'date_equals' => 'Le champ :attribute doit être une date égale à :date.',
+ 'date_format' => 'Le champ :attribute ne correspond pas au format :format.',
+ 'different' => 'Les champs :attribute et :other doivent être différents.',
+ 'digits' => 'Le champ :attribute doit contenir :digits chiffres.',
+ 'digits_between' => 'Le champ :attribute doit contenir entre :min et :max chiffres.',
+ 'dimensions' => "La taille de l'image :attribute n'est pas conforme.",
+ 'distinct' => 'Le champ :attribute a une valeur en double.',
+ 'email' => 'Le champ :attribute doit être une adresse email valide.',
+ 'ends_with' => 'Le champ :attribute doit se terminer par une des valeurs suivantes : :values',
+ 'exists' => 'Le champ :attribute sélectionné est invalide.',
+ 'file' => 'Le champ :attribute doit être un fichier.',
+ 'filled' => 'Le champ :attribute doit avoir une valeur.',
+ 'gt' => [
+ 'numeric' => 'La valeur de :attribute doit être supérieure à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être supérieure à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir plus de :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir plus de :value éléments.',
+ ],
+ 'gte' => [
+ 'numeric' => 'La valeur de :attribute doit être supérieure ou égale à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être supérieure ou égale à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir au moins :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir au moins :value éléments.',
+ ],
+ 'image' => 'Le champ :attribute doit être une image.',
+ 'in' => 'Le champ :attribute est invalide.',
+ 'in_array' => "Le champ :attribute n'existe pas dans :other.",
+ 'integer' => 'Le champ :attribute doit être un entier.',
+ 'ip' => 'Le champ :attribute doit être une adresse IP valide.',
+ 'ipv4' => 'Le champ :attribute doit être une adresse IPv4 valide.',
+ 'ipv6' => 'Le champ :attribute doit être une adresse IPv6 valide.',
+ 'json' => 'Le champ :attribute doit être un document JSON valide.',
+ 'lt' => [
+ 'numeric' => 'La valeur de :attribute doit être inférieure à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être inférieure à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir moins de :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir moins de :value éléments.',
+ ],
+ 'lte' => [
+ 'numeric' => 'La valeur de :attribute doit être inférieure ou égale à :value.',
+ 'file' => 'La taille du fichier de :attribute doit être inférieure ou égale à :value kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir au plus :value caractères.',
+ 'array' => 'Le tableau :attribute doit contenir au plus :value éléments.',
+ ],
+ 'max' => [
+ 'numeric' => 'La valeur de :attribute ne peut être supérieure à :max.',
+ 'file' => 'La taille du fichier de :attribute ne peut pas dépasser :max kilo-octets.',
+ 'string' => 'Le texte de :attribute ne peut contenir plus de :max caractères.',
+ 'array' => 'Le tableau :attribute ne peut contenir plus de :max éléments.',
+ ],
+ 'mimes' => 'Le champ :attribute doit être un fichier de type : :values.',
+ 'mimetypes' => 'Le champ :attribute doit être un fichier de type : :values.',
+ 'min' => [
+ 'numeric' => 'La valeur de :attribute doit être supérieure ou égale à :min.',
+ 'file' => 'La taille du fichier de :attribute doit être supérieure à :min kilo-octets.',
+ 'string' => 'Le texte :attribute doit contenir au moins :min caractères.',
+ 'array' => 'Le tableau :attribute doit contenir au moins :min éléments.',
+ ],
+ 'multiple_of' => 'La valeur de :attribute doit être un multiple de :value',
+ 'not_in' => "Le champ :attribute sélectionné n'est pas valide.",
+ 'not_regex' => "Le format du champ :attribute n'est pas valide.",
+ 'numeric' => 'Le champ :attribute doit contenir un nombre.',
+ 'password' => 'Le mot de passe est incorrect',
+ 'present' => 'Le champ :attribute doit être présent.',
+ 'regex' => 'Le format du champ :attribute est invalide.',
+ 'required' => 'Le champ :attribute est obligatoire.',
+ 'required_if' => 'Le champ :attribute est obligatoire quand la valeur de :other est :value.',
+ 'required_unless' => 'Le champ :attribute est obligatoire sauf si :other est :values.',
+ 'required_with' => 'Le champ :attribute est obligatoire quand :values est présent.',
+ 'required_with_all' => 'Le champ :attribute est obligatoire quand :values sont présents.',
+ 'required_without' => "Le champ :attribute est obligatoire quand :values n'est pas présent.",
+ 'required_without_all' => "Le champ :attribute est requis quand aucun de :values n'est présent.",
+ 'same' => 'Les champs :attribute et :other doivent être identiques.',
+ 'size' => [
+ 'numeric' => 'La valeur de :attribute doit être :size.',
+ 'file' => 'La taille du fichier de :attribute doit être de :size kilo-octets.',
+ 'string' => 'Le texte de :attribute doit contenir :size caractères.',
+ 'array' => 'Le tableau :attribute doit contenir :size éléments.',
+ ],
+ 'starts_with' => 'Le champ :attribute doit commencer avec une des valeurs suivantes : :values',
+ 'string' => 'Le champ :attribute doit être une chaîne de caractères.',
+ 'timezone' => 'Le champ :attribute doit être un fuseau horaire valide.',
+ 'unique' => 'La valeur du champ :attribute est déjà utilisée.',
+ 'uploaded' => "Le fichier du champ :attribute n'a pu être téléversé.",
+ 'url' => "Le format de l'URL de :attribute n'est pas valide.",
+ 'uuid' => 'Le champ :attribute doit être un UUID valide',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify custom validation messages for attributes using the
+ | convention "attribute.rule" to name the lines. This makes it quick to
+ | specify a specific custom language line for a given attribute rule.
+ |
+ */
+
+ 'phone' => 'Le champ :attribute n\'est pas un numéro de téléphone valide.',
+
+ 'custom' => [
+ 'attribute-name' => [
+ 'rule-name' => 'custom-message',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Attributes
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used to swap attribute place-holders
+ | with something more reader friendly such as E-Mail Address instead
+ | of "email". This simply helps us make messages a little cleaner.
+ |
+ */
+
+ 'attributes' => [
+ 'name' => 'nom',
+ 'username' => "nom d'utilisateur",
+ 'email' => 'adresse email',
+ 'first_name' => 'prénom',
+ 'last_name' => 'nom',
+ 'password' => 'mot de passe',
+ 'password_confirmation' => 'confirmation du mot de passe',
+ 'city' => 'ville',
+ 'country' => 'pays',
+ 'address' => 'adresse',
+ 'phone' => 'téléphone',
+ 'mobile' => 'portable',
+ 'age' => 'âge',
+ 'sex' => 'sexe',
+ 'gender' => 'genre',
+ 'day' => 'jour',
+ 'month' => 'mois',
+ 'year' => 'année',
+ 'hour' => 'heure',
+ 'minute' => 'minute',
+ 'second' => 'seconde',
+ 'title' => 'titre',
+ 'content' => 'contenu',
+ 'description' => 'description',
+ 'excerpt' => 'extrait',
+ 'date' => 'date',
+ 'time' => 'heure',
+ 'available' => 'disponible',
+ 'size' => 'taille',
+ 'answers' => 'réponses',
+ 'answers.*' => 'réponse',
+ 'postal_code' => 'code postal',
+ 'picture' => 'image',
+ 'breeder_code' => 'code éleveur'
+ ],
+];
diff --git a/resources/lang/vendor/translation/de/errors.php b/resources/lang/vendor/translation/de/errors.php
new file mode 100644
index 0000000..88b55e3
--- /dev/null
+++ b/resources/lang/vendor/translation/de/errors.php
@@ -0,0 +1,6 @@
+ 'Die Sprache { :language } ist bereits vorhanden',
+ 'key_exists' => 'Der Übersetzungsschlüssel { :key } ist bereits vorhanden',
+];
diff --git a/resources/lang/vendor/translation/de/translation.php b/resources/lang/vendor/translation/de/translation.php
new file mode 100644
index 0000000..9fe7a8a
--- /dev/null
+++ b/resources/lang/vendor/translation/de/translation.php
@@ -0,0 +1,52 @@
+ 'Sprachen',
+ 'language' => 'Sprache',
+ 'type' => 'Typ',
+ 'file' => 'Datei',
+ 'key' => 'Schlüssel',
+ 'prompt_language' => 'Geben Sie den Sprachcode ein, den Sie hinzufügen möchten (z.B. en).',
+ 'language_added' => 'Neue Sprache wurde erfolgreich hinzugefügt 🙌',
+ 'prompt_language_for_key' => 'Geben Sie die Sprache für den Schlüssel ein (z.B. en)',
+ 'prompt_type' => 'Ist das ein Json- oder Array-Schlüssel?',
+ 'prompt_file' => 'In welcher Datei wird das gespeichert?',
+ 'prompt_key' => 'Was ist der Schlüssel für diese Übersetzung?',
+ 'prompt_value' => 'Was ist der Wert für diese Übersetzung',
+ 'type_error' => 'Übersetzungstyp muss json oder ein Array sein',
+ 'language_key_added' => 'Neuer Sprachenschlüssel wurde erfolgreich hinzugefügt 👏',
+ 'no_missing_keys' => 'Es fehlen keine Übersetzungsschlüssel in der App 🎉',
+ 'keys_synced' => 'Fehlende Schlüssel erfolgreich synchronisiert 🎊',
+ 'search' => 'Alle Übersetzungen suchen',
+ 'translations' => 'Übersetzung',
+ 'language_name' => 'Name',
+ 'locale' => 'locale',
+ 'add' => '+ Hinzufügen',
+ 'add_language' => 'Neue Sprache hinzufügen',
+ 'save' => 'save',
+ 'language_exists' => 'Das :attribute ist bereits vorhanden.',
+ 'uh_oh' => 'Etwas ist nicht ganz richtig',
+ 'group_single' => 'Gruppe / Single',
+ 'Gruppe' => 'Gruppe',
+ 'single' => 'single',
+ 'value' => 'Wert',
+ 'namespace' => 'Namespace',
+ 'prompt_from_driver' => 'Von welchem Treiber möchten Sie Übersetzungen übernehmen?',
+ 'prompt_to_driver' => 'Zu welchem Treiber möchten Sie die Übersetzungen hinzufügen?',
+ 'prompt_language_if_any' => 'Welche Sprache? (leer lassen für alle) ',
+ 'synchronisieren' => 'Übersetzungen synchronisieren ⏳',
+ 'synced' => 'Übersetzungen wurden synchronisiert 😎',
+ 'invalid_driver' => 'Ungültiger Treiber',
+ 'invalid_language' => 'Ungültige Sprache',
+ 'add_translation' => 'Übersetzung hinzufügen',
+ 'translation_added' => 'Neue Übersetzung erfolgreich hinzugefügt 🙌',
+ 'namespace_label' => 'Namespace (optional)',
+ 'group_label' => 'Gruppe (optional)',
+ 'key_label' => 'Schlüssel',
+ 'value_label' => 'Wert',
+ 'namespace_placeholder' => 'z.B. my_package',
+ 'group_placeholder' => 'z.B. validation',
+ 'key_placeholder' => 'z.B. invalid_key',
+ 'value_placeholder' => 'z.B. Schlüssel müssen eine einzige Zeichenfolge sein',
+ 'advanced_options' => 'Erweiterte Optionen umschalten',
+];
diff --git a/resources/lang/vendor/translation/en/errors.php b/resources/lang/vendor/translation/en/errors.php
new file mode 100644
index 0000000..abd5036
--- /dev/null
+++ b/resources/lang/vendor/translation/en/errors.php
@@ -0,0 +1,6 @@
+ 'The language { :language } already exists',
+ 'key_exists' => 'The translation key { :key } already exists',
+];
diff --git a/resources/lang/vendor/translation/en/translation.php b/resources/lang/vendor/translation/en/translation.php
new file mode 100644
index 0000000..f37eff9
--- /dev/null
+++ b/resources/lang/vendor/translation/en/translation.php
@@ -0,0 +1,52 @@
+ 'Languages',
+ 'language' => 'Language',
+ 'type' => 'Type',
+ 'file' => 'File',
+ 'key' => 'Key',
+ 'prompt_language' => 'Enter the language code you would like to add (e.g. en)',
+ 'language_added' => 'New language added successfully 🙌',
+ 'prompt_language_for_key' => 'Enter the language for the key (e.g. en)',
+ 'prompt_type' => 'Is this a json or array key?',
+ 'prompt_file' => 'Which file will this be stored in?',
+ 'prompt_key' => 'What is the key for this translation?',
+ 'prompt_value' => 'What is the value for this translation',
+ 'type_error' => 'Translation type must be json or array',
+ 'language_key_added' => 'New language key added successfully 👏',
+ 'no_missing_keys' => 'There are no missing translation keys in the app 🎉',
+ 'keys_synced' => 'Missing keys synchronised successfully 🎊',
+ 'search' => 'Search all translations',
+ 'translations' => 'Translation',
+ 'language_name' => 'Name',
+ 'locale' => 'Locale',
+ 'add' => '+ Add',
+ 'add_language' => 'Add a new language',
+ 'save' => 'Save',
+ 'language_exists' => 'The :attribute already exists.',
+ 'uh_oh' => 'Something\'s not quite right',
+ 'group_single' => 'Group / Single',
+ 'group' => 'Group',
+ 'single' => 'Single',
+ 'value' => 'Value',
+ 'namespace' => 'Namespace',
+ 'prompt_from_driver' => 'Which driver would you like to take translations from?',
+ 'prompt_to_driver' => 'Which driver would you like to add the translations to?',
+ 'prompt_language_if_any' => 'Which language? (leave blank for all)',
+ 'syncing' => 'Syncing translations ⏳',
+ 'synced' => 'Translations have been synced 😎',
+ 'invalid_driver' => 'Invalid driver',
+ 'invalid_language' => 'Invalid language',
+ 'add_translation' => 'Add a translation',
+ 'translation_added' => 'New translation added successfull 🙌',
+ 'namespace_label' => 'Namespace (Optional)',
+ 'group_label' => 'Group (Optional)',
+ 'key_label' => 'Key',
+ 'value_label' => 'Value',
+ 'namespace_placeholder' => 'e.g. my_package',
+ 'group_placeholder' => 'e.g. validation',
+ 'key_placeholder' => 'e.g. invalid_key',
+ 'value_placeholder' => 'e.g. Keys must be a single string',
+ 'advanced_options' => 'Toggle advanced options',
+];
diff --git a/resources/lang/vendor/translation/fr/errors.php b/resources/lang/vendor/translation/fr/errors.php
new file mode 100644
index 0000000..f4de475
--- /dev/null
+++ b/resources/lang/vendor/translation/fr/errors.php
@@ -0,0 +1,6 @@
+ 'La clé de traduction { :key } existe déjà',
+ 'language_exists' => 'La langue { :language } existe déjà',
+];
diff --git a/resources/lang/vendor/translation/fr/translation.php b/resources/lang/vendor/translation/fr/translation.php
new file mode 100644
index 0000000..462a1de
--- /dev/null
+++ b/resources/lang/vendor/translation/fr/translation.php
@@ -0,0 +1,52 @@
+ '+ Ajouter',
+ 'add_language' => 'Ajouter une nouvelle langue',
+ 'add_translation' => 'Ajouter une traduction',
+ 'advanced_options' => 'Afficher les options avancées',
+ 'file' => 'Fichier',
+ 'group' => 'Groupe',
+ 'group_label' => 'Groupe (Optionnel)',
+ 'group_placeholder' => 'Ex: validation',
+ 'group_single' => 'Groupe / Unique',
+ 'invalid_driver' => 'Driver invalide',
+ 'invalid_language' => 'Langue invalide',
+ 'key' => 'Clé',
+ 'key_label' => 'Clé',
+ 'key_placeholder' => 'Par exemple : invalid_key',
+ 'keys_synced' => 'Clés manquantes synchronisées avec succès 🎊',
+ 'language' => 'Langue',
+ 'language_added' => 'Nouvelle langue ajoutée avec succés 🙌',
+ 'language_exists' => 'Le :attribute existe déjà.',
+ 'language_key_added' => 'Nouvelle clé dans la langue ajoutée avec succès 👏',
+ 'language_name' => 'Nom',
+ 'languages' => 'Langues',
+ 'locale' => 'Locale',
+ 'namespace' => 'Namespace',
+ 'namespace_label' => 'Namespace (Optionnel)',
+ 'namespace_placeholder' => 'Par exemple : my_package',
+ 'no_missing_keys' => 'Il ne manque aucune clé de traduction dans l\'application 🎉',
+ 'prompt_file' => 'Dans quel fichier sera t\'elle stockée ?',
+ 'prompt_from_driver' => 'De quel driver voudriez-vous prendre les traductions ?',
+ 'prompt_key' => 'Quelle est la clé de cette traduction ?',
+ 'prompt_language' => 'Entrez le code langue que vous aimeriez ajouter (Ex: fr)',
+ 'prompt_language_for_key' => 'Entrez la langue pour la clé (Ex: fr)',
+ 'prompt_language_if_any' => 'Quelle langue ? (Laissez vide pour tous)',
+ 'prompt_to_driver' => 'À quel driver désirez-vous ajouter les traductions ?',
+ 'prompt_type' => 'Est-ce une clé Json ou Array ?',
+ 'prompt_value' => 'Quelle est la valeur de la traduction',
+ 'save' => 'Sauvegarder',
+ 'search' => 'Rechercher toutes les traductions',
+ 'single' => 'Unique',
+ 'synced' => 'Les traductions sont synchronisées 😎',
+ 'syncing' => 'Synchronisation des traductions ⏳',
+ 'translation_added' => 'Nouvelle traduction ajoutée avec succès 🙌',
+ 'translations' => 'Traduction',
+ 'type' => 'Type',
+ 'type_error' => 'Le type de traduction doit être en json ou en array',
+ 'uh_oh' => 'Quelque chose ne fonctionne pas',
+ 'value' => 'Valeur',
+ 'value_label' => 'Valeur',
+ 'value_placeholder' => 'Par exemple : Les clés doivent être une seule chaîne',
+];
diff --git a/resources/lang/vendor/translation/nl/errors.php b/resources/lang/vendor/translation/nl/errors.php
new file mode 100644
index 0000000..5205c2e
--- /dev/null
+++ b/resources/lang/vendor/translation/nl/errors.php
@@ -0,0 +1,6 @@
+ 'De taal { :language } bestaat al',
+ 'key_exists' => 'De vertaalsleutel { :key } bestaat al',
+];
diff --git a/resources/lang/vendor/translation/nl/translation.php b/resources/lang/vendor/translation/nl/translation.php
new file mode 100644
index 0000000..d839b04
--- /dev/null
+++ b/resources/lang/vendor/translation/nl/translation.php
@@ -0,0 +1,52 @@
+ 'Talen',
+ 'language' => 'Taal',
+ 'type' => 'Type',
+ 'file' => 'Bestand',
+ 'key' => 'Sleutel',
+ 'prompt_language' => 'Voer de taalcode in die u wilt toevoegen (bijvoorbeeld: en)',
+ 'language_added' => 'Nieuwe taal met succes toegevoegd 🙌',
+ 'prompt_language_for_key' => 'Voer de taal voor de sleutel in (bijvoorbeeld: en)',
+ 'prompt_type' => 'Is dit een json- of arraysleutel?',
+ 'prompt_file' => 'In welk bestand wordt dit opgeslagen?',
+ 'prompt_key' => 'Wat is de sleutel voor deze vertaling?',
+ 'prompt_value' => 'Wat is de text voor deze vertaling',
+ 'type_error' => 'Het vertaaltype moet json of array zijn',
+ 'language_key_added' => 'Nieuwe taalcode toegevoegd 👏',
+ 'no_missing_keys' => 'Er zijn geen ontbrekende vertaalsleutels in de app 🎉',
+ 'keys_synced' => 'Ontbrekende toetsen gesynchroniseerd met succes 🎊',
+ 'search' => 'Doorzoek alle vertalingen',
+ 'translations' => 'Vertaling',
+ 'language_name' => 'Naam',
+ 'locale' => 'locale',
+ 'add' => '+ Toevoegen',
+ 'add_language' => 'Voeg een nieuwe taal toe',
+ 'save' => 'Opslaan',
+ 'language_exists' => 'Het kenmerk :attribute bestaat al.',
+ 'uh_oh' => 'Er klopt iets niet helemaal',
+ 'group_single' => 'Groep / Enkelvoudig',
+ 'group' => 'Groep',
+ 'single' => 'Enkelvoudig',
+ 'value' => 'Waarde',
+ 'namespace' => 'Namespace',
+ 'prompt_from_driver' => 'Van welke driver wilt u vertalingen meenemen?',
+ 'prompt_to_driver' => 'Aan welke driver wilt u de vertalingen toevoegen?',
+ 'prompt_language_if_any' => 'Welke taal? (laat leeg voor alle)',
+ 'syncing' => 'Vertaling synchroniseren ⏳',
+ 'synced' => 'Vertalingen zijn gesynchroniseerd 😎',
+ 'invalid_driver' => 'Ongeldige driver',
+ 'invalid_language' => 'Ongeldige taal',
+ 'add_translation' => 'Voeg een vertaling toe',
+ 'translation_added' => 'Nieuwe vertaling succesvol toegevoegd 🙌',
+ 'namespace_label' => 'Namespace (optioneel)',
+ 'group_label' => 'Groep (optioneel)',
+ 'key_label' => 'Sleutel',
+ 'value_label' => 'Waarde',
+ 'namespace_placeholder' => 'bijv. Mijn_pakket',
+ 'group_placeholder' => 'bijv. bevestiging',
+ 'key_placeholder' => 'bijv. ongeldige sleutel',
+ 'value_placeholder' => 'bijv. Sleutels mogen geen spaties bevatten',
+ 'advanced_options' => 'Schakel geavanceerde opties in',
+];
diff --git a/resources/sass/__import.scss b/resources/sass/__import.scss
new file mode 100644
index 0000000..b5e6fcf
--- /dev/null
+++ b/resources/sass/__import.scss
@@ -0,0 +1,2 @@
+@import "variables";
+@import "classes";
\ No newline at end of file
diff --git a/resources/sass/_classes.scss b/resources/sass/_classes.scss
new file mode 100644
index 0000000..a9d37e5
--- /dev/null
+++ b/resources/sass/_classes.scss
@@ -0,0 +1,30 @@
+.min-height-100vh {
+ min-height: calc(100vh - #{$topNavHeight});
+}
+
+.site {
+ border: solid white 1px;
+}
+
+#siteid {
+ color: white;
+ margin-right: 100px;
+}
+
+.white-png {
+ background-color: #eeeeee !important;
+ text-align: center;
+}
+
+.wdt11 {
+ width: 11%;
+}
+.wdt25 {
+ width: 25%;
+}
+.wdt50 {
+ width: 50%;
+}
+.wdt75 {
+ width: 75%;
+}
diff --git a/resources/sass/_footer.scss b/resources/sass/_footer.scss
deleted file mode 100644
index 62975c9..0000000
--- a/resources/sass/_footer.scss
+++ /dev/null
@@ -1,66 +0,0 @@
-.footer-widgets {
- align-items: center;
- .footer-widgets__content {
- left: 0;
- right: 0;
- &:before {
- content: url(~@/images/picto-localisation.png);
- margin-right: 10px;
- }
- }
-}
-
-.footer-content {
- color: $color-light;
- font-size: 15px;
- background-color: $color-main;
-
- ul {
- margin-bottom: 25px;
- }
-
- a {
- color: $color-light;
- text-decoration: none;
- }
-}
-
-@media screen and (min-width: 800px) {
- .footer-content {
- ul {
- li {
- display: inline-block;
- margin-left: 10px;
- margin-right: 10px;
- &:first-child {
- margin-left: 0;
- }
- &:last-child {
- margin-right: 0;
- }
- }
- }
- }
-}
-
-@media screen and (max-width: 799px) {
- .footer-widgets {
- height: 200px;
- img {
- height: 100%;
- object-fit: cover;
- opacity: 0.2;
- }
- .footer-widgets__content {
- text-align: center;
- margin-top: 50px;
- }
- }
- .footer-content {
- ul {
- li {
- margin-bottom: 10px;
- }
- }
- }
-}
diff --git a/resources/sass/_form.scss b/resources/sass/_form.scss
deleted file mode 100644
index 89c5e7f..0000000
--- a/resources/sass/_form.scss
+++ /dev/null
@@ -1,252 +0,0 @@
-form{
- font-size:16px;
-}
-
-input[type=text]{
- border:0 none;
-}
-
-input[type=submit]{
- min-width:180px;
- padding:15px;
- color:$color-main;
- background-color:transparent;
- font-weight:bold;
- text-align:center;
- text-transform:uppercase;
- border:1px solid $color-main;
-}
-
-.newsletter input[type=text],
-input[type=submit]{
- border-radius: 30px;
-}
-
-input[type=submit]{
- cursor: pointer;
- &:hover{
- color:$color-light;
- background-color:$color-main;
- }
-}
-
-input[type=text],
-input[type=number],
-input[type=mail]{
- padding:15px;
- font-size:15px;
- border:0 none;
- outline-color:#efefef;
-}
-
-textarea{
- width:100%;
- max-width:100%;
- margin-top:30px;
- margin-bottom:30px;
-}
-
-.form-row{
- display:flex;
- padding-top:30px;
- padding-bottom:30px;
-}
-
-.form-group{
- display:flex;
- padding-bottom:2px;
- width:100%;
- max-width:100%;
- border-bottom:solid 1px $color-dark;
- input[type=text],
- input[type=number],
- input[type=mail]{
- flex-grow:2;
- }
- &:first-of-type{
- margin-left:0;
- }
- &:last-of-type{
- margin-right:0;
- }
-}
-
-fieldset{
- margin-top:45px;
- border:0 none;
- legend{
- margin-bottom:30px;
- font-weight:bold;
- }
-}
-
-/*CUSTOM RADIO*/
-.radio-label {
- position: relative;
- padding-left: 20px;
- margin-right:25px;
- color:#999999;
- cursor: pointer;
-}
-
-/* Hide the browser's default radio button */
-.radio-label input {
- appearance: none;
-}
-
-/* Create a custom radio button */
-.checkmark {
- position: absolute;
- top: 3px;
- left: 0;
- right:10px;
- height: 12px;
- width: 12px;
- background-color: $color-light;
- border:solid 1px $color-main;
- border-radius: 50%;
-}
-
-/* On mouse-over, add a grey background color */
-.radio-label:hover input ~ .checkmark {
- background-color: $color-main;
-}
-
-/* When the radio button is checked, add a blue background */
-.radio-label input:checked ~ .checkmark {
- background-color: $color-light;
-}
-
-/* Create the indicator (the dot/circle - hidden when not checked) */
-.checkmark:after {
- content: "";
- position: absolute;
- display: none;
-}
-
-/* Show the indicator (dot/circle) when checked */
-.radio-label input:checked ~ .checkmark:after {
- display: block;
-}
-
-/* Style the indicator (dot/circle) */
-.radio-label .checkmark:after {
- top: 2px;
- left: 2px;
- width: 6px;
- height: 6px;
- border-radius: 50%;
- background-color: $color-main;
-}
-
-/*CUSTOM CHECKBOX*/
-.ck-button{
- margin-bottom:45px;
-}
-.ck-button label{
- margin-right:10px;
- &:last-child{
- margin-right:0;
- }
-}
-
-.ck-button label span {
- padding:10px;
- margin-right:10px;
- border:1px solid $color-dark;
- border-radius:40px;
- cursor: pointer;
- &:last-child{
- margin-right:0;
- }
- &:hover{
- color:$color-light;
- border-color:$color-main;
- background-color:$color-main;
- }
-}
-
-.ck-button label input {
- position:absolute;
- top:-20px;
-}
-
-.ck-button input:checked + span {
- background-color:$color-main;
- color:$color-light;
- border-color:$color-light;
-}
-
-/*CUSTOM FORM*/
-.swap {
- visibility: hidden;
-}
-
-.swap:after {
- cursor: pointer;
- visibility: visible;
- content: '';
- font-size: calc(var(--swap-size) - 2.5rem);
- display: inline-block;
- width: var(--swap-size);
- height: var(--swap-size);
- padding: .5rem;
- border: 1px solid $color-main;
- border-radius: .4em;
- background-color: $color-light;
- display: flex;
- justify-content: center;
- align-items: center;
-}
-
-.swap:checked:after {
- content:"";
- background-color: $color-main;
-}
-
-@media screen and (min-width: 800px){
- .newsletter input[type=text]{
- width:430px;
- }
- .form-group{
- align-items:center;
- margin-left:15px;
- margin-right:15px;
- }
-}
-
-@media screen and (max-width: 799px){
- input[type=text],
- input[type=submit]{
- display: block;
- margin-left:auto;
- margin-right:auto;
- }
-
- form,
- input[type=text]{
- width:100%;
- max-width:100%;
- }
-
- input[type=submit]{
- margin-top:25px;
- }
-
- .form-row,
- .form-group{
- flex-direction:column;
- }
-
- .form-group{
- margin-bottom:25px;
- &:last-child{
- margin-bottom:0;
- }
- }
-
- .ck-button label span {
- display:inline-block;
- margin-bottom:5px;
- }
-}
\ No newline at end of file
diff --git a/resources/sass/_globals.scss b/resources/sass/_globals.scss
deleted file mode 100644
index dd1caad..0000000
--- a/resources/sass/_globals.scss
+++ /dev/null
@@ -1,137 +0,0 @@
-html {
- font-size: 100%;
-}
-
-body {
- font-size: $globalfont;
- font-family: $fontbarlow-regular;
- line-height: 1.4;
-}
-
-button {
- border: 0 none;
- background-color: transparent;
- cursor: pointer;
-}
-
-img {
- width: 100%;
-}
-
-#backtotop {
- display: none;
- align-items: center;
- justify-content: center;
- position: fixed;
- bottom: 20px;
- right: 20px;
- width: 40px;
- height: 40px;
- border-radius: 40px;
- background-color: $color-main;
- z-index: 99;
-
- .arrow {
- border: solid $color-light;
- border-width: 0 3px 3px 0;
- display: inline-block;
- padding: 3px;
- &.up {
- transform: rotate(-135deg);
- }
- }
-}
-
-#search {
- background-image: url("~@/images/search.png");
- background-size: contain;
- background-repeat: no-repeat;
- width: 25px;
- height: 25px;
- margin-left: 25px;
-}
-
-ul.more {
- margin-top: 50px;
- li {
- align-items: center;
- position: relative;
- padding-left: 25px;
- margin-bottom: 30px;
- &:last-of-type {
- margin-bottom: 0;
- }
- p:first-of-type {
- position: relative;
- }
- &:before {
- content: "";
- position: absolute;
- left: 0;
- top: 15px;
- width: 13px;
- height: 13px;
- background-color: $color-blue;
- border-radius: 50%;
- }
- .label img {
- width: 100px;
- }
- }
-}
-
-ul.infos {
- display: flex;
- justify-content: center;
- li {
- justify-content: center;
- text-align: center;
- color: $color-blue;
- font-family: $fontbarlow-bold;
- }
- span {
- display: flex;
- justify-content: center;
- align-items: center;
- width: 85px;
- height: 85px;
- padding: 20px;
- margin: 20px auto;
- background-color: $color-main;
- border-radius: 50%;
- }
-}
-
-@media screen and (min-width: 800px) {
- main {
- padding-top: 100px;
- }
-
- ul.more {
- li {
- p:first-of-type {
- font-size: 30px;
- }
- }
- }
-
- ul.infos {
- li {
- flex-basis: 20%;
- }
- }
-}
-
-@media screen and (max-width: 799px) {
- main {
- padding-top: 50px;
- }
-
- ul.more {
- li {
- p:first-of-type {
- font-size: 22px;
- }
- }
- }
-}
diff --git a/resources/sass/_header.scss b/resources/sass/_header.scss
deleted file mode 100644
index eca0fd1..0000000
--- a/resources/sass/_header.scss
+++ /dev/null
@@ -1,77 +0,0 @@
-.site-header{
- position:fixed;
- left:0;
- right:0;
- font-family: $fontbarlow-bold;
- background-color:$color-main;
- box-shadow: 0 2px 8px rgba($color-dark, .15);
- z-index:99;
-
- .wrapper{
- display:flex;
- align-items:center;
- }
-
- .logotype{
- top:0;
- left:1em;
- width: 25%;
- z-index:1;
- img{
- width:200px;
- }
- }
-
- > span{
- width:25%;
- text-align:right;
- }
-
- nav li{
- display:inline-block;
- }
-
- nav a{
- color:$color-blue;
- text-decoration:none;
- &:hover{
- color:$color-second;
- }
- }
-
- .traduction{
- display:flex;
- li{
- margin-right:15px;
- a{
- color:$color-blue;
- text-transform:uppercase;
- text-decoration:none;
- }
- &.current a{
- color:$color-second;
- }
- &:last-of-type{
- margin-right:0;
- }
- }
- }
-}
-
-@media screen and (min-width: 800px){
- .site-header{
- .wrapper{
- justify-content: space-between;
- height:100px;
- }
- }
-}
-
-@media screen and (max-width: 799px){
- .site-header{
- .wrapper{
- justify-content: flex-end;
- height:50px;
- }
- }
-}
\ No newline at end of file
diff --git a/resources/sass/_layout.scss b/resources/sass/_layout.scss
deleted file mode 100644
index d81e358..0000000
--- a/resources/sass/_layout.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-@media screen and (min-width:1200px){
- .container{
- padding-top:60px;
- padding-bottom:60px;
- }
- .wrapper,
- .wrapper-m{
- margin-left:auto;
- margin-right:auto;
- }
- .wrapper{
- width:1170px;
- max-width:1170px;
- }
- .wrapper-m{
- width:900px;
- max-width:900px;
- }
-}
-
-@media (max-width:1199px){
- .wrapper,
- .wrapper-m{
- width:100%;
- max-width:100%;
- padding-left:25px;
- padding-right:25px;
- }
-}
-
-@media screen and (max-width:768px){
- .container{
- padding-top:60px;
- padding-bottom:60px;
- }
-}
\ No newline at end of file
diff --git a/resources/sass/_list.scss b/resources/sass/_list.scss
deleted file mode 100644
index ba97e1f..0000000
--- a/resources/sass/_list.scss
+++ /dev/null
@@ -1,305 +0,0 @@
-.product-card,
-.gamme-card{
- display:flex;
- position:relative;
- height:375px;
- margin-bottom:20px;
- overflow: hidden;
- > img{
- display:block;
- width:100%;
- height: 100%;
- object-fit: cover;
- }
- a{
- top:0;
- z-index:9;
- }
- .overlay{
- display: flex;
- align-items:center;
- justify-content:center;
- position:absolute;
- width:100%;
- height:50%;
- font-weight:bold;
- transition: bottom 0.4s;
- }
-}
-
-.product-card{
- .product-card__title,
- a{
- position:absolute;
- right:0;
- bottom:0;
- left:0;
- }
- .product-card__title{
- padding:1em .2em;
- background-color:rgba($color-light, .5);
- }
- .overlay{
- bottom:-200px;
- span{
- width:50%;
- padding-top:1em;
- padding-bottom:1em;
- background-color:$color-light;
- border-radius:2em;
- }
- }
- &:hover .overlay{
- bottom:0;
- }
-}
-
-.gamme-card{
- .gamme-card__title,
- a{
- position:absolute;
- right:0;
- bottom:0;
- left:0;
- }
- .gamme-card__title{
- padding:1em .2em;
- background-color:rgba($color-light, .5);
- }
- .overlay{
- bottom:-50px;
- span{
- color:$color-light;
- font-size:30px;
- font-family:$fontbarlow-bold;
- }
- }
- &:hover .overlay{
- bottom:50px;
- }
-}
-
-#list {
- .title{
- color:$color-light;
- font-size: calc(#{$globalfont} * 3.25);
- }
- .is-flex{
- justify-content: space-between;
- flex-wrap: wrap;
- }
- .section-header{
- margin-bottom:50px;
- color:$color-light;
- .title{
- margin-bottom:5px;
- }
- .content{
- top:30px;
- padding-left:30px;
- padding-right:30px;
- }
- }
-}
-
-.overlay{
- background-color: rgba($color-brown, .8);
- span{
- color:$color-brown;
- }
-}
-
-.is-brown{
- header .content{
- background-color: rgba($color-brown, .8);
- }
- .overlay{
- background-color: rgba($color-brown, .8);
- }
- .product-card{
- .overlay{
- span{
- color:$color-brown;
- }
- }
- }
-}
-
-.is-orange{
- header .content{
- background-color: rgba($color-orange, .8);
- }
- .overlay{
- background-color: rgba($color-orange, .8);
- }
- .product-card{
- .overlay{
- span{
- color:$color-orange;
- }
- }
- }
-}
-
-.is-grey{
- header .content{
- background-color: rgba($color-newgrey, .8);
- }
- .overlay{
- background-color: rgba($color-newgrey, .8);
- }
- .product-card{
- .overlay{
- span{
- color:$color-newgrey;
- }
- }
- }
-}
-
-.is-yellow{
- header .content{
- background-color: rgba($color-main, .8);
- }
- .overlay{
- background-color: rgba($color-main, .8);
- }
- .product-card{
- .overlay{
- span{
- color:$color-main;
- }
- }
- }
- .gamme-card{
- .overlay{
- span{
- color:$color-light;
- }
- }
- }
-}
-
-.is-blue{
- header .content{
- background-color: rgba($color-newblue, .8);
- }
- .overlay{
- background-color: rgba($color-newblue, .8);
- }
- .product-card{
- .overlay{
- span{
- color:$color-newblue;
- }
- }
- }
-}
-
-.is-green{
- header .content{
- background-color: rgba($color-green, .8);
- }
- .overlay{
- background-color: rgba($color-green, .8);
- }
- .product-card{
- .overlay{
- span{
- color:$color-green;
- }
- }
- }
-}
-
-.is-pink{
- header .content{
- background-color: rgba($color-pink, .8);
- }
- .overlay{
- background-color: rgba($color-pink, .8);
- }
- .product-card{
- .overlay{
- span{
- color:$color-pink;
- }
- }
- }
-}
-
-#posts{
- position:relative;
-
- .sectiontitle:after {
- content: "";
- background-color: $color-dark;
- }
-}
-
-@media (min-width:769px){
- .product-card{
- width:32%;
- max-width:32%;
- }
-
- .gamme-card{
- width:32%;
- max-width:32%;
- &:nth-child(4),
- &:nth-child(5){
- width:49%;
- max-width:49%;
- }
- }
-
- .post-card{
- flex:1;
- margin-right:30px;
-
- &:last-child{
- margin-right:0;
- }
- }
-
- #list {
- .section-header{
- .content{
- position:absolute;
- }
- }
- }
- #posts{
- > img{
- position:absolute;
- top:0;
- left:0;
- height:50%;
- z-index:-1;
- object-fit: cover;
- }
- }
-}
-
-@media (max-width:768px){
- #list {
- .section-header{
- .content{
- position:relative;
- }
- }
- }
- #posts{
- > img{
- position:absolute;
- top:0;
- left:0;
- height:14%;
- z-index:-1;
- object-fit: cover;
- }
- }
- .posts-list .post-card{
- margin-bottom:50px;
- }
-}
\ No newline at end of file
diff --git a/resources/sass/_menu.scss b/resources/sass/_menu.scss
deleted file mode 100644
index 9fc9e7c..0000000
--- a/resources/sass/_menu.scss
+++ /dev/null
@@ -1,173 +0,0 @@
-.menu-overlay__checkbox {
- display: none;
-}
-
-@media screen and (min-width: 800px){
- .menu{
- width:40%;
- margin-left:300px;
- text-transform:uppercase;
-
- &-overlay__btn{
- display: none;
- }
-
- .menu__list{
- display:flex;
- justify-content:space-between;
- }
-
- a{
- display:inline-block;
- color:$color-blue;
- text-decoration:none;
- &:hover{
- color:$color-second;
- }
- &.active{
- position:relative;
- color:$color-second;
- }
- &.active:before{
- content:"";
- position:absolute;
- top:-60px;
- left:0;
- right:0;
- width:75px;
- height:4px;
- margin-left:auto;
- margin-right:auto;
- background-color: $color-main;
- }
- }
-
- .only-smrt{
- display:none;
- }
- }
-}
-
-@media screen and (max-width: 799px){
- .menu{
- order:2;
-
- .only-smrt a{
- color:$color-second;
- }
-
- label {
- display: flex;
- align-items:flex-start;
- justify-content: center;
- position: fixed;
- width: 2.8em;
- height: 2.8em;
- z-index: 9999;
- }
-
- &__list{
- display: none;
- }
-
- &__item{
- padding:1em;
- border-bottom:solid 1px $color-dark;
- &:last-child{
- border-bottom-width:0;
- }
- }
-
- .menu-overlay{
- position:fixed;
- display:flex;
- right:0;
- z-index:100;
-
- &__icon {
- display: block;
- position: relative;
- width: 1.5em;
- height: .1em;
- background: $color-light;
- transition: .4s;
-
- &:after,
- &:before {
- content: "";
- display: block;
- position: absolute;
- width: 100%;
- height: .1em;
- background: $color-light;
- border-radius:2em;
- transition: .4s;
- }
-
- &:before {
- top: -10px;
- }
-
- &:after {
- top: 10px;
- }
- }
-
- &__btn{
- display: flex;
- justify-content:center;
- align-items:center;
- top:0;
- right:20px;
- justify-content: center;
- cursor: pointer;
- }
-
- &__checkbox {
- &:checked~.menu-overlay__btn .menu-overlay__icon {
- background: 0 0;
- }
-
- &:checked~.menu-overlay__btn .menu-overlay__icon::before {
- transform: rotate(45deg);
- }
-
- &:checked~.menu-overlay__btn .menu-overlay__icon::after {
- transform: rotate(-45deg);
- }
-
- &:checked~.menu-overlay__btn .menu-overlay__icon::after,
- &:checked~.menu-overlay__btn .menu-overlay__icon::before {
- top: 0;
- }
-
- &:checked~.menu__list {
- display:flex;
- flex-direction: column;
- position:fixed;
- top:50px;
- left:0;
- width:100%;
- padding-top:1em;
- padding-left:1em;
- padding-right:1em;
- text-transform: uppercase;
- background-color:$color-light;
- transition-delay: 0s;
- box-shadow: 0 2px 8px rgba($color-dark, .20);
- }
- }
- }
- }
-}
-
-.secondmenu{
- display:flex;
- justify-content:flex-end;
-}
-
-@media screen and (max-width: 799px) {
- .secondmenu{
- margin-right: 3em;
- }
-}
\ No newline at end of file
diff --git a/resources/sass/_utils.scss b/resources/sass/_utils.scss
deleted file mode 100644
index 55453c6..0000000
--- a/resources/sass/_utils.scss
+++ /dev/null
@@ -1,93 +0,0 @@
-.align-center{
- text-align:center;
-}
-
-.align-left{
- text-align:left;
-}
-
-.bold{
- font-weight:bold;
-}
-
-.ttu{
- text-transform:uppercase;
-}
-
-.has-bckg--grey{
- background-color:#f5f5f5;
-}
-
-.is-flex{
- display:flex;
- &.vertical-center{
- align-items:center;
- }
- &.start{
- align-items:flex-start;
- }
- &.wrap{
- flex-wrap:wrap;
- }
- &.space-between{
- justify-content:space-between;
- }
-}
-
-.is-small{
- margin-top:35px;
- margin-bottom:35px;
- font-size:12px;
-}
-
-.p-rel{
- position:relative;
-}
-
-.p-abs{
- position:absolute;
-}
-
-.color-red{
- color:$color-second;
-}
-
-.color-blue{
- color:$color-blue;
-}
-
-.color-yellow{
- color:$color-main;
-}
-
-.font-size-medium {
- font-size:45px;
-}
-
-@media screen and (min-width: 800px){
- .is-flex .w50{
- flex-basis:50%;
- &:nth-child(2){
- margin-left:35px;
- }
- }
-
- .is-flex .w100{
- flex-basis:100%;
- &:nth-child(1){
- padding-right:185px;
- }
- &:nth-child(2){
- margin-left:35px;
- }
- }
-}
-
-@media screen and (max-width: 799px){
- .is-flex{
- flex-direction: column;
- }
- .smrt-align-center{
- text-align:center;
- }
-}
\ No newline at end of file
diff --git a/resources/sass/_variables.scss b/resources/sass/_variables.scss
index 7123479..014452d 100644
--- a/resources/sass/_variables.scss
+++ b/resources/sass/_variables.scss
@@ -1,18 +1,22 @@
-$color-light: #fff !default;
-$color-dark: #0c1417 !default;
-$color-main: #fccf1d !default;
-$color-second: #ff0400 !default;
+// NAVBAR
+$topNavHeight: 3rem;
-$color-grey: #888 !default;
-$color-blue: #222f5c !default;
-$color-brown: #8b4437 !default;
-$color-green: #85b83f !default;
-$color-pink: #be366c !default;
-$color-orange: #d36500 !default;
-$color-newgrey: #cba583 !default;
-$color-newblue: #98c1e8 !default;
+// Body
+$body-bg: #f8fafc;
-$globalfont: 18px;
+// Typography
+$font-family-sans-serif: "Nunito", sans-serif;
+$font-size-base: 0.9rem;
+$line-height-base: 1.6;
-$fontbarlow-regular: "barlow-regular", arial, sans-serif;
-$fontbarlow-bold: "barlow-bold", arial, sans-serif;
+// Colors
+$blue: #3490dc;
+$indigo: #6574cd;
+$purple: #9561e2;
+$pink: #f66d9b;
+$red: #e3342f;
+$orange: #f6993f;
+$yellow: #ffed4a;
+$green: #38c172;
+$teal: #4dc0b5;
+$cyan: #6cb2eb;
diff --git a/resources/sass/back.scss b/resources/sass/back.scss
new file mode 100644
index 0000000..1d62007
--- /dev/null
+++ b/resources/sass/back.scss
@@ -0,0 +1,5 @@
+@import "_import";
+
+@import "layouts/backend/top_nav";
+
+@import "vue-select/src/scss/vue-select.scss";
diff --git a/resources/sass/frontend/_animate.scss b/resources/sass/frontend/_animate.scss
new file mode 100644
index 0000000..037e3aa
--- /dev/null
+++ b/resources/sass/frontend/_animate.scss
@@ -0,0 +1,6 @@
+.animate__animated {
+ opacity: 0;
+}
+.animate__animated.reveal-visible {
+ opacity: 1;
+}
diff --git a/resources/sass/_carrousel.scss b/resources/sass/frontend/_carrousel.scss
similarity index 55%
rename from resources/sass/_carrousel.scss
rename to resources/sass/frontend/_carrousel.scss
index 71a0038..9349994 100644
--- a/resources/sass/_carrousel.scss
+++ b/resources/sass/frontend/_carrousel.scss
@@ -1,9 +1,49 @@
-#carrousel1 {
+.jumbotron {
font-family: $fontbarlow-bold;
+ position: relative;
+ z-index: 1;
+ overflow: hidden;
+
+ img {
+ transition: transform 0.3s ease-in-out;
+
+ &.zoomed {
+ transform: scale(1.05);
+ }
+ }
+ .item__title {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ width: max-content;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: $color-light;
+ &:before,
+ &:after {
+ content: "";
+ position: absolute;
+ height: 60%;
+ background-color: $color-light;
+ box-shadow: 0 2px 8px rgba($color-dark, 0.6);
+ }
+ &:before {
+ left: 0;
+ }
+ &:after {
+ right: 0;
+ }
+ }
+}
+
+#carrousel1 {
.carrousel {
- padding-bottom: 1.5em;
+ // padding-bottom: 1.5em;
overflow: hidden;
outline-color: transparent;
+
.carrousel__container {
transition: transform 0.3s;
transform: translateZ(0);
@@ -23,6 +63,7 @@
align-items: center;
justify-content: center;
position: relative;
+
img {
display: block;
width: 100%;
@@ -42,34 +83,35 @@
.item__image {
width: 100%;
+ overflow: hidden;
}
- .item__body {
- position: absolute;
- text-shadow: 0 2px 8px rgba($color-dark, 0.6);
- }
+ // .item__body {
+ // position: absolute;
+ // text-shadow: 0 2px 8px rgba($color-dark, 0.6);
+ // }
- .item__title {
- position: relative;
- display: flex;
- align-items: center;
- justify-content: center;
- color: $color-light;
- &:before,
- &:after {
- content: "";
- position: absolute;
- height: 60%;
- background-color: $color-light;
- box-shadow: 0 2px 8px rgba($color-dark, 0.6);
- }
- &:before {
- left: 0;
- }
- &:after {
- right: 0;
- }
- }
+ // .item__title {
+ // position: relative;
+ // display: flex;
+ // align-items: center;
+ // justify-content: center;
+ // color: $color-light;
+ // &:before,
+ // &:after {
+ // content: "";
+ // position: absolute;
+ // height: 60%;
+ // background-color: $color-light;
+ // box-shadow: 0 2px 8px rgba($color-dark, 0.6);
+ // }
+ // &:before {
+ // left: 0;
+ // }
+ // &:after {
+ // right: 0;
+ // }
+ // }
.item__link {
display: inline-flex;
@@ -158,36 +200,59 @@
@media screen and (min-width: 800px) {
#carrousel1 {
- .carrousel {
- .item__title {
- width: 770px;
- font-size: 60px;
- &:before,
- &:after {
- content: "";
- width: 7px;
- }
- }
- }
+ // .carrousel {
+ // .item__title {
+ // width: 770px;
+ // font-size: 60px;
+ // &:before,
+ // &:after {
+ // content: "";
+ // width: 7px;
+ // }
+ // }
+ // }
.carrousel__pagination {
display: block;
}
}
-}
-
-@media screen and (max-width: 799px) {
- #carrousel1 {
- .carrousel {
- .item__title {
- padding-left: 1em;
- padding-right: 1em;
- font-size: 26px;
- &:before,
- &:after {
- content: "";
- width: 4px;
- }
+ .jumbotron {
+ .item__title {
+ width: 770px;
+ font-size: 60px;
+ &:before,
+ &:after {
+ content: "";
+ width: 7px;
+ }
+ }
+ }
+}
+
+@media screen and (max-width: 799px) {
+ // #carrousel1 {
+ // .carrousel {
+ // .item__title {
+ // padding-left: 1em;
+ // padding-right: 1em;
+ // font-size: 26px;
+ // &:before,
+ // &:after {
+ // content: "";
+ // width: 4px;
+ // }
+ // }
+ // }
+ // }
+ .jumbotron {
+ .item__title {
+ padding-left: 1em;
+ padding-right: 1em;
+ font-size: 26px;
+ &:before,
+ &:after {
+ content: "";
+ width: 4px;
}
}
}
diff --git a/resources/sass/_carrousel2.scss b/resources/sass/frontend/_carrousel2.scss
similarity index 99%
rename from resources/sass/_carrousel2.scss
rename to resources/sass/frontend/_carrousel2.scss
index 834fff8..524d681 100644
--- a/resources/sass/_carrousel2.scss
+++ b/resources/sass/frontend/_carrousel2.scss
@@ -1,5 +1,7 @@
/*POSTS*/
#carrousel2 {
+ margin-top: 2rem;
+
.carrousel {
padding-bottom: 1.5em;
overflow: hidden;
diff --git a/resources/sass/_custom.scss b/resources/sass/frontend/_custom.scss
similarity index 71%
rename from resources/sass/_custom.scss
rename to resources/sass/frontend/_custom.scss
index a7c0f3c..e3ea71b 100644
--- a/resources/sass/_custom.scss
+++ b/resources/sass/frontend/_custom.scss
@@ -1,9 +1,11 @@
.jumbotron {
+ position: relative;
display: flex;
align-items: center;
justify-content: center;
.maintitle {
position: absolute;
+ max-width: 100%;
color: $color-light;
text-align: center;
text-shadow: 0 2px 8px rgba($color-dark, 0.6);
@@ -21,6 +23,9 @@
border-radius: 50%;
}
}
+ img {
+ max-width: 100%;
+ }
}
#products,
@@ -39,38 +44,55 @@
}
#products {
+ .sectiontitle h2 {
+ margin-bottom: 0;
+ }
.sectiontitle:after {
content: "";
background-color: $color-dark;
}
> img {
- height: 80%;
+ max-height: 80%;
}
.product-item {
display: flex;
align-items: center;
flex: 1;
margin-right: 60px;
- transition: transform 0.2s; /* Animation */
+ transition: transform 0.7s; /* Animation */
+
&:last-child {
margin-right: 0;
}
&:hover {
transform: scale(1.1);
}
+ & img {
+ width: 265px;
+ }
}
.products-list {
margin-top: 20px;
}
}
-
+#product-food {
+ .sectiontitle:after {
+ content: "";
+ background-color: $color-dark;
+ }
+}
#values {
.sectiontitle:after {
content: "";
background-color: $color-dark;
}
+ .sectiontitle.white-line:after,
+ .header-title.white-line:after {
+ background-color: white;
+ }
> img {
height: 110%;
+ max-width: 100%;
}
ul {
display: flex;
@@ -88,7 +110,9 @@
justify-content: center;
align-items: center;
flex: 1;
+ padding: 10px;
font-family: $fontbarlow-bold;
+
img {
width: 70px;
height: 70px;
@@ -100,6 +124,8 @@
}
#reassurances {
+ margin-bottom: 60px;
+
ul {
display: flex;
flex-wrap: wrap;
@@ -120,11 +146,17 @@
color: $color-second;
font-size: calc(#{$globalfont} * 4);
}
+}
- .reassurance-item {
- margin-top: 30px;
- margin-bottom: 30px;
- }
+.video-wrapper {
+ display: none;
+}
+
+.cuisto {
+ display: none;
+ position: absolute;
+ left: 0;
+ top: 0;
}
.plan,
@@ -139,7 +171,9 @@
line-height: 1.5;
}
}
-
+.advice-img {
+ min-width: 270px;
+}
// .plan:before {
// content: url("~@/images/icon-plan.png");
// position: absolute;
@@ -198,6 +232,10 @@
.blue .featured-link {
color: $color-second;
}
+.blue-bg .featured-link {
+ background-image: url(~@/images/food-service-active.png);
+ background-position: center top;
+}
.best {
display: flex;
@@ -213,6 +251,23 @@
margin-bottom: 50px;
}
+.has-label {
+ position: relative;
+ &:before {
+ content: "";
+ position: absolute;
+ right: 20px;
+ top: unset;
+ bottom: -280px;
+ width: 11vw;
+ height: 15vw;
+ max-width: 130px;
+ background-image: url(~@/images/Logo_MadeInFrance.jpg);
+ background-repeat: no-repeat;
+ background-size: contain;
+ }
+}
+
@media screen and (min-width: 800px) {
.jumbotron .maintitle {
font-size: calc(#{$globalfont} * 3.25);
@@ -223,23 +278,20 @@
}
}
.has-label {
- position: relative;
&:before {
- content: url(~@/images/Logo_MadeInFrance.jpg);
- position: absolute;
- right: -150px;
- top: 50px;
- }
- }
- .has-label-bis {
- position: relative;
- &:before {
- content: url(~@/images/Logo_MadeInFrance.jpg);
- position: absolute;
- right: 0px;
- top: -50px;
+ top: 25px;
+ bottom: unset;
}
}
+ // .has-label-bis {
+ // position: relative;
+ // &:before {
+ // content: url(~@/images/Logo_MadeInFrance.jpg);
+ // position: absolute;
+ // right: 0px;
+ // top: -50px;
+ // }
+ // }
// .has-labels {
// padding-top: 30px;
// &:after {
@@ -271,14 +323,21 @@
}
.featured-link {
bottom: -63px;
- right: -190px;
- width: 145px;
- padding-top: 25px;
+ right: -250px;
+ width: 280px;
+ padding-top: 37px;
padding-bottom: 35px;
line-height: 1;
color: $color-blue;
background-image: url(~@/images/food-service.png);
background-repeat: no-repeat;
+ background-position: center 12px;
+ // transition: background-position 0.3s ease-in-out;
+
+ &:hover {
+ background-image: url(~@/images/food-service-active.png);
+ background-position: center top;
+ }
}
.featured-link span {
display: block;
@@ -299,12 +358,21 @@
.desk-mt180 {
margin-top: 180px;
}
+ .desk-mr10 {
+ margin-right: 10px;
+ }
.desk-mr18 {
margin-right: 80px;
}
+ .desk-mt-n15 {
+ margin-top: -15px;
+ }
.desk-mt-n80 {
margin-top: -80px;
}
+ .desk-mt-n95 {
+ margin-top: -95px;
+ }
.desk-ml-150 {
margin-left: 150px;
}
@@ -314,6 +382,9 @@
.desk-mt50 {
margin-top: 50px;
}
+ .desk-mb-50 {
+ margin-bottom: 50px !important;
+ }
.desk-mb-80 {
margin-bottom: 80px !important;
}
@@ -329,11 +400,12 @@
span:first-of-type {
margin-right: 10px;
color: $color-second;
- font-size: 90px;
+ font-size: 6vw;
}
span:nth-of-type(2) {
+ margin-top: 1rem;
color: $color-blue;
- font-size: 55px;
+ font-size: 4vw;
}
}
.reduice-img img {
@@ -343,39 +415,67 @@
}
}
+@media screen and (min-width: 1024px) {
+ .cuisto {
+ display: block;
+ }
+}
+
+@media screen and (min-width: 1200px) {
+ .best {
+ span:first-of-type {
+ font-size: 90px;
+ }
+ span:nth-of-type(2) {
+ font-size: 55px;
+ }
+ }
+}
+
@media screen and (max-width: 799px) {
.jumbotron .maintitle {
- font-size: calc(#{$globalfont} * 1.8);
+ font-size: calc(#{$globalfont} * 1.6);
}
.blue {
> .menu .menu__item a {
color: $color-light;
}
}
+ #products .product-item {
+ margin-right: 0;
+
+ img {
+ margin: 1rem auto;
+ }
+ }
#values ul {
flex-direction: column;
align-items: center;
}
.has-label {
- position: relative;
+ // position: relative;
&:before {
- content: url(~@/images/Logo_MadeInFrance_mobile.jpg);
- position: absolute;
- right: 0;
- left: 0;
- top: 300px;
- }
- }
- .has-label-bis {
- position: relative;
- &:before {
- content: url(~@/images/Logo_MadeInFrance_mobile.jpg);
- position: absolute;
- right: 0;
- left: 0;
- top: 100px;
+ // content: url(~@/images/Logo_MadeInFrance_mobile.jpg);
+ // position: absolute;
+ width: 130px;
+ height: 190px;
+ right: unset;
+ left: 50%;
+ transform: translateX(-50%);
+ top: unset;
+ bottom: -285px;
}
}
+ // .has-label-bis {
+ // position: relative;
+ // &:before {
+ // content: url(~@/images/Logo_MadeInFrance_mobile.jpg);
+ // position: absolute;
+ // right: 0;
+ // left: 0;
+ // top: 100px;
+ // }
+ // }
// .has-labels {
// padding-bottom: 80px;
// &:after {
@@ -398,6 +498,9 @@
flex-direction: column;
}
}
+ .reassurance-item:not(:first-child) {
+ margin-top: 30px;
+ }
#values .values-list {
margin-top: 50px;
flex-wrap: wrap;
diff --git a/resources/sass/_fonts.scss b/resources/sass/frontend/_fonts.scss
similarity index 66%
rename from resources/sass/_fonts.scss
rename to resources/sass/frontend/_fonts.scss
index bd80077..22d28cb 100644
--- a/resources/sass/_fonts.scss
+++ b/resources/sass/frontend/_fonts.scss
@@ -13,3 +13,10 @@ $font-path: "~@/fonts";
src: url("#{$font-path}/barlow/Barlow-Bold.woff2") format("woff2"),
url("#{$font-path}/barlow/Barlow-Bold.woff") format("woff");
}
+
+@font-face {
+ font-family: "cocon-regular";
+ font-weight: normal;
+ src: url("#{$font-path}/cocon/cocon-regular-webfont.woff2") format("woff2"),
+ url("#{$font-path}/cocon/cocon-regular-webfont.woff") format("woff");
+}
diff --git a/resources/sass/frontend/_footer.scss b/resources/sass/frontend/_footer.scss
new file mode 100644
index 0000000..fe89165
--- /dev/null
+++ b/resources/sass/frontend/_footer.scss
@@ -0,0 +1,119 @@
+#picto-localisation {
+ left: -40px;
+ width: 25px;
+ height: 34px;
+ margin-right: 30px;
+
+ .cls-1 {
+ fill: #131414;
+ }
+ .cls-2 {
+ fill: transparent;
+ }
+}
+.footer-widgets {
+ align-items: center;
+ .footer-widgets__content {
+ left: 20%;
+ right: 0;
+ top: 50%;
+ transform: translateY(-50%);
+
+ &.white-color {
+ p {
+ color: white;
+ }
+ #picto-localisation {
+ .cls-1 {
+ fill: white;
+ }
+ }
+ }
+ }
+ img {
+ max-width: 100%;
+ }
+}
+
+.footer-content {
+ color: $color-light;
+ font-size: 15px;
+ background-color: $color-main;
+
+ &.blue-bg {
+ background-color: $color-blue;
+ }
+
+ ul {
+ margin-bottom: 25px;
+ }
+
+ a {
+ color: $color-light;
+ text-decoration: none;
+ }
+}
+
+.banner.footer {
+ top: -1px;
+ transform: rotate(180deg);
+}
+
+@media screen and (min-width: 800px) {
+ .footer-content {
+ ul {
+ li {
+ display: inline-block;
+ margin-left: 10px;
+ margin-right: 10px;
+ &:first-child {
+ margin-left: 0;
+ }
+ &:last-child {
+ margin-right: 0;
+ }
+ }
+ }
+ }
+}
+
+@media screen and (max-width: 799px) {
+ .footer-widgets {
+ height: 200px;
+ img {
+ height: 100%;
+ object-fit: cover;
+ opacity: 0.2;
+ }
+ .footer-widgets__content {
+ text-align: center;
+ left: 50%;
+ top: unset;
+ transform: translateX(-50%);
+ bottom: 20px;
+
+ #picto-localisation {
+ top: -40px;
+ left: 50%;
+ transform: translateX(-50%);
+ }
+ &.white-color {
+ p {
+ color: black;
+ }
+ #picto-localisation {
+ .cls-1 {
+ fill: black;
+ }
+ }
+ }
+ }
+ }
+ .footer-content {
+ ul {
+ li {
+ margin-bottom: 10px;
+ }
+ }
+ }
+}
diff --git a/resources/sass/frontend/_form.scss b/resources/sass/frontend/_form.scss
new file mode 100644
index 0000000..c1c367d
--- /dev/null
+++ b/resources/sass/frontend/_form.scss
@@ -0,0 +1,268 @@
+form {
+ font-size: 16px;
+}
+
+input[type="text"] {
+ border: 0 none;
+}
+
+input[type="submit"] {
+ min-width: 180px;
+ padding: 15px;
+ color: $color-main;
+ background-color: transparent;
+ font-weight: bold;
+ text-align: center;
+ text-transform: uppercase;
+ border: 1px solid $color-main;
+}
+
+.newsletter input[type="text"],
+input[type="submit"] {
+ border-radius: 30px;
+}
+
+input[type="submit"] {
+ cursor: pointer;
+ &:hover {
+ color: $color-light;
+ background-color: $color-main;
+ }
+}
+
+input[type="text"],
+input[type="number"],
+input[type="mail"] {
+ padding: 15px;
+ font-size: 15px;
+ border: 0 none;
+ outline-color: #efefef;
+}
+
+textarea {
+ width: 100%;
+ max-width: 100%;
+ margin-top: 30px;
+ margin-bottom: 30px;
+}
+
+.form-row {
+ display: flex;
+ padding-top: 30px;
+ padding-bottom: 30px;
+}
+
+.form-group {
+ display: flex;
+ padding-bottom: 2px;
+ width: 100%;
+ max-width: 100%;
+ border-bottom: solid 1px $color-dark;
+ input[type="text"],
+ input[type="number"],
+ input[type="mail"] {
+ flex-grow: 2;
+ }
+ &:first-of-type {
+ margin-left: 0;
+ }
+ &:last-of-type {
+ margin-right: 0;
+ }
+}
+.country,
+.drom {
+ width: 50%;
+
+ select {
+ width: 100%;
+ border: none;
+ border-bottom-color: currentcolor;
+ border-bottom-style: none;
+ border-bottom-width: medium;
+ border-bottom: 1px solid black;
+ padding-bottom: 1rem;
+ }
+}
+.country {
+ margin-right: 15px;
+}
+fieldset {
+ margin-top: 45px;
+ border: 0 none;
+ legend {
+ margin-bottom: 30px;
+ font-weight: bold;
+ }
+}
+
+/*CUSTOM RADIO*/
+.radio-label {
+ position: relative;
+ padding-left: 20px;
+ margin-right: 25px;
+ // color:#999999;
+ cursor: pointer;
+}
+
+/* Hide the browser's default radio button */
+.radio-label input {
+ appearance: none;
+}
+
+/* Create a custom radio button */
+.checkmark {
+ position: absolute;
+ top: 3px;
+ left: 0;
+ right: 10px;
+ height: 12px;
+ width: 12px;
+ background-color: $color-light;
+ border: solid 1px $color-main;
+ border-radius: 50%;
+}
+
+/* On mouse-over, add a grey background color */
+.radio-label:hover input ~ .checkmark {
+ background-color: $color-main;
+}
+
+/* When the radio button is checked, add a blue background */
+.radio-label input:checked ~ .checkmark {
+ background-color: $color-light;
+}
+
+/* Create the indicator (the dot/circle - hidden when not checked) */
+.checkmark:after {
+ content: "";
+ position: absolute;
+ display: none;
+}
+
+/* Show the indicator (dot/circle) when checked */
+.radio-label input:checked ~ .checkmark:after {
+ display: block;
+}
+
+/* Style the indicator (dot/circle) */
+.radio-label .checkmark:after {
+ top: 2px;
+ left: 2px;
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ background-color: $color-main;
+}
+
+/*CUSTOM CHECKBOX*/
+.ck-button {
+ margin-bottom: 45px;
+}
+.ck-button label {
+ margin-right: 10px;
+ &:last-child {
+ margin-right: 0;
+ }
+}
+
+.ck-button label span {
+ padding: 10px;
+ margin-right: 10px;
+ border: 1px solid $color-dark;
+ border-radius: 40px;
+ cursor: pointer;
+ &:last-child {
+ margin-right: 0;
+ }
+ &:hover {
+ color: $color-light;
+ border-color: $color-main;
+ background-color: $color-main;
+ }
+}
+
+.ck-button label input {
+ position: absolute;
+ left: -20px;
+}
+
+.ck-button input:checked + span {
+ background-color: $color-main;
+ color: $color-light;
+ border-color: $color-light;
+}
+
+/*CUSTOM FORM*/
+.swap {
+ visibility: hidden;
+}
+
+.swap:after {
+ cursor: pointer;
+ visibility: visible;
+ content: "";
+ font-size: calc(var(--swap-size) - 2.5rem);
+ display: inline-block;
+ width: var(--swap-size);
+ height: var(--swap-size);
+ padding: 0.5rem;
+ border: 1px solid $color-main;
+ border-radius: 0.4em;
+ background-color: $color-light;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.swap:checked:after {
+ content: "";
+ background-color: $color-main;
+}
+
+@media screen and (min-width: 800px) {
+ .newsletter input[type="text"] {
+ width: 430px;
+ }
+ .form-group {
+ align-items: center;
+ margin-left: 15px;
+ margin-right: 15px;
+ }
+}
+
+@media screen and (max-width: 799px) {
+ input[type="text"],
+ input[type="submit"] {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ form,
+ input[type="text"] {
+ width: 100%;
+ max-width: 100%;
+ }
+
+ input[type="submit"] {
+ margin-top: 25px;
+ }
+
+ .form-row,
+ .form-group {
+ flex-direction: column;
+ }
+
+ .form-group {
+ margin-bottom: 25px;
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ .ck-button label span {
+ display: inline-block;
+ margin-bottom: 5px;
+ }
+}
diff --git a/resources/sass/frontend/_globals.scss b/resources/sass/frontend/_globals.scss
new file mode 100644
index 0000000..7b2f0af
--- /dev/null
+++ b/resources/sass/frontend/_globals.scss
@@ -0,0 +1,260 @@
+html {
+ font-size: 100%;
+}
+
+body {
+ font-size: $globalfont;
+ font-family: $fontbarlow-regular;
+ line-height: 1.4;
+}
+
+button {
+ border: 0 none;
+ background-color: transparent;
+ cursor: pointer;
+}
+
+img {
+ width: 100%;
+ max-width: max-content;
+}
+
+#frise-autoscroll {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+
+ .img-frise {
+ position: relative;
+ width: max-content;
+ margin: 0 auto;
+ display: flex;
+ flex-direction: column;
+
+ svg {
+ width: 272px;
+ height: 1280px;
+ position: relative;
+ }
+
+ & svg:first-child {
+ top: -40px;
+ }
+ & svg:nth-child(2) {
+ top: -100px;
+ }
+ & svg:nth-child(3) {
+ top: -160px;
+ }
+
+ .svg-mask {
+ position: sticky;
+ width: 100%;
+ height: 100px;
+ bottom: 0;
+ background-image: linear-gradient(
+ to top,
+ #ffffff,
+ #ffffff,
+ #ffffff,
+ transparent
+ );
+ }
+ }
+}
+
+#backtotop {
+ display: none;
+ align-items: center;
+ justify-content: center;
+ position: fixed;
+ bottom: 20px;
+ right: 20px;
+ width: 40px;
+ height: 40px;
+ border-radius: 40px;
+ background-color: $color-main;
+ z-index: 99;
+
+ .arrow {
+ border: solid $color-light;
+ border-width: 0 3px 3px 0;
+ display: inline-block;
+ padding: 3px;
+ &.up {
+ transform: rotate(-135deg);
+ }
+ }
+}
+
+#search {
+ width: 24px;
+ height: 24px;
+ margin-left: 15px;
+ cursor: pointer;
+}
+
+.product ul.more li {
+ width: max-content;
+ max-width: 100%;
+
+ p:first-of-type {
+ font-size: 18px;
+
+ &::before {
+ top: 50%;
+ transform: translateY(-50%);
+ }
+ }
+}
+.product .img-bloc {
+ position: relative;
+
+ &::after {
+ content: "";
+ display: none;
+ background-image: url(~@/images/picto_halal.png);
+ background-size: contain;
+ background-repeat: no-repeat;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ width: 25%;
+ height: 25%;
+ }
+ &.view-halal::after {
+ display: block;
+ }
+}
+ul.more {
+ margin-top: 50px;
+
+ li {
+ align-items: center;
+ position: relative;
+ padding-left: 25px;
+ // margin-bottom: 30px;
+ width: 100%;
+
+ &:last-of-type {
+ margin-bottom: 0;
+ }
+ p:first-of-type {
+ position: relative;
+ font-size: 26px;
+
+ &::before {
+ content: "";
+ position: absolute;
+ left: -2rem;
+ top: 20px;
+ width: 10px;
+ height: 10px;
+ background-color: $color-blue;
+ border-radius: 50%;
+ }
+ }
+ .label img {
+ width: 100px;
+ }
+ }
+}
+
+ul.infos {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+
+ li {
+ width: 110px;
+ padding: 10px;
+ text-align: center;
+ color: $color-blue;
+ font-family: $fontbarlow-bold;
+ }
+ span {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 85px;
+ height: 85px;
+ padding: 20px;
+ margin: 20px auto;
+ background-color: $color-main;
+ border-radius: 50%;
+ }
+}
+.offset-anchor {
+ position: relative;
+ top: -100px;
+}
+.banner {
+ position: absolute;
+ bottom: -1px;
+ height: 50px;
+ width: 100%;
+
+ svg {
+ position: absolute;
+ bottom: 0;
+ }
+}
+.contact-page {
+ position: relative;
+ align-items: center;
+
+ #picto-localisation {
+ left: 50%;
+ transform: translateX(-50%);
+ top: 0;
+ margin-right: 0;
+ }
+ & > p {
+ width: 100%;
+ text-align: center;
+ }
+ @media screen and (min-width: 768px) {
+ #picto-localisation {
+ top: 5%;
+ }
+ }
+ @media screen and (min-width: 1024px) {
+ & > p {
+ width: unset;
+ // text-align: initial;
+ }
+ // #picto-localisation {
+ // margin-right: 30px;
+ // }
+ }
+}
+
+@media screen and (min-width: 480px) {
+ ul.infos {
+ flex-direction: row;
+ align-items: initial;
+ }
+}
+
+@media screen and (min-width: 800px) {
+ #search {
+ width: 28px;
+ height: 28px;
+ margin-left: 25px;
+ }
+ main {
+ padding-top: 100px;
+ }
+ ul.infos {
+ li {
+ flex-basis: 20%;
+ }
+ }
+}
+
+@media screen and (max-width: 799px) {
+ main {
+ padding-top: 50px;
+ }
+}
diff --git a/resources/sass/frontend/_header.scss b/resources/sass/frontend/_header.scss
new file mode 100644
index 0000000..2129ede
--- /dev/null
+++ b/resources/sass/frontend/_header.scss
@@ -0,0 +1,120 @@
+.site-header {
+ position: fixed;
+ left: 0;
+ right: 0;
+ font-family: $fontbarlow-bold;
+ background-color: $color-main;
+ box-shadow: 0 2px 8px rgba($color-dark, 0.15);
+ z-index: 99;
+
+ svg {
+ .cls-1 {
+ fill: #000;
+ }
+ .cls-2 {
+ fill: transparent;
+ }
+ }
+
+ &.blue-bg {
+ background-color: $color-blue;
+
+ svg {
+ .cls-1 {
+ fill: #fff;
+ }
+ }
+ }
+ .wrapper {
+ display: flex;
+ align-items: center;
+ }
+
+ .logotype {
+ top: 0;
+ left: 1em;
+ width: 25%;
+ z-index: 1;
+ img {
+ width: 200px;
+ }
+ }
+
+ > span {
+ width: 25%;
+ text-align: right;
+ }
+
+ nav li {
+ display: inline-block;
+ }
+
+ nav a {
+ color: $color-blue;
+ text-decoration: none;
+ &:hover {
+ color: $color-second;
+ }
+ &.menu__item--current {
+ color: $color-second;
+ }
+ }
+
+ .traduction {
+ display: flex;
+ li {
+ margin-right: 15px;
+ a {
+ font-size: 14px;
+ color: $color-blue;
+ text-transform: uppercase;
+ text-decoration: none;
+ }
+ &.current a {
+ color: $color-second;
+ }
+ &:last-of-type {
+ margin-right: 0;
+ }
+ }
+ }
+ &.blue-bg .traduction li a {
+ color: white;
+ }
+ &.blue-bg .traduction li.current a {
+ color: $color-second;
+ }
+}
+
+@media screen and (min-width: 800px) {
+ .site-header {
+ .traduction li a {
+ font-size: 18px;
+ }
+ .wrapper {
+ justify-content: space-between;
+ height: 100px;
+ }
+ &.blue-bg {
+ nav a:not(.featured-link),
+ .traduction li a {
+ color: white;
+ &:hover {
+ color: $color-second;
+ }
+ }
+ }
+ }
+}
+
+@media screen and (max-width: 799px) {
+ .site-header {
+ .wrapper {
+ justify-content: flex-end;
+ height: 50px;
+ }
+ .logotype img {
+ width: 100px;
+ }
+ }
+}
diff --git a/resources/sass/frontend/_layout.scss b/resources/sass/frontend/_layout.scss
new file mode 100644
index 0000000..32a1f46
--- /dev/null
+++ b/resources/sass/frontend/_layout.scss
@@ -0,0 +1,57 @@
+.container.news {
+ .sectiontitle {
+ margin-bottom: 25px;
+
+ h2 {
+ margin-bottom: 0;
+ }
+ }
+}
+.container {
+ padding-top: 30px;
+ padding-bottom: 30px;
+}
+
+@media screen and (min-width: 768px) {
+ .container {
+ padding-top: 60px;
+ padding-bottom: 60px;
+ }
+}
+
+@media screen and (min-width: 1200px) {
+ // .container {
+ // padding-top: 60px;
+ // padding-bottom: 60px;
+ // }
+ .wrapper,
+ .wrapper-m {
+ margin-left: auto;
+ margin-right: auto;
+ }
+ .wrapper {
+ width: 1170px;
+ max-width: 1170px;
+ }
+ .wrapper-m {
+ width: 900px;
+ max-width: 900px;
+ }
+}
+
+@media (max-width: 1199px) {
+ .wrapper,
+ .wrapper-m {
+ width: 100%;
+ max-width: 100%;
+ padding-left: 25px;
+ padding-right: 25px;
+ }
+}
+
+// @media screen and (max-width: 768px) {
+// .container {
+// padding-top: 60px;
+// padding-bottom: 60px;
+// }
+// }
diff --git a/resources/sass/_links.scss b/resources/sass/frontend/_links.scss
similarity index 67%
rename from resources/sass/_links.scss
rename to resources/sass/frontend/_links.scss
index d36d6d4..d8fe30b 100644
--- a/resources/sass/_links.scss
+++ b/resources/sass/frontend/_links.scss
@@ -23,12 +23,19 @@
}
.breadcrumb {
- position: absolute;
- top: 20px;
+ --margin-breadcrumb: 50px;
+ position: relative;
+ flex-wrap: wrap;
+ margin-left: var(--margin-breadcrumb);
+ top: -84px;
+ //left: 32px;
align-items: center;
+ max-width: 25%;
+ text-align: initial;
color: $color-brown;
font-size: calc(#{$globalfont} * 0.85);
z-index: 2;
+
a:first-of-type {
margin-right: 5px;
}
@@ -37,12 +44,20 @@
margin-left: 5px;
}
&:before {
+ position: absolute;
+ left: calc(var(--margin-breadcrumb) * -1);
content: url("~@/images/arrow-back.jpg");
- margin-right: 25px;
}
}
@media screen and (max-width: 799px) {
+ .breadcrumb {
+ //max-width: 70%;
+ top: -20px;
+ right: 0;
+ justify-content: flex-end;
+ flex-direction: initial;
+ }
.product-template .breadcrumb {
display: none;
}
diff --git a/resources/sass/frontend/_list.scss b/resources/sass/frontend/_list.scss
new file mode 100644
index 0000000..c3882e4
--- /dev/null
+++ b/resources/sass/frontend/_list.scss
@@ -0,0 +1,429 @@
+.product-card,
+.gamme-card {
+ display: flex;
+ position: relative;
+ height: 300px;
+ margin-bottom: 20px;
+ overflow: hidden;
+ > img {
+ display: block;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ max-width: none;
+ }
+ a {
+ top: 0;
+ z-index: 9;
+ }
+ .overlay {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: absolute;
+ width: 100%;
+ height: 50%;
+ font-weight: bold;
+ transition: bottom 0.4s;
+ }
+}
+.product-card > img {
+ object-fit: contain;
+}
+.product-card {
+ .product-card__title,
+ a {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+ .product-card__title {
+ padding: 1em 0.2em;
+ background-color: rgba($color-light, 0.5);
+ }
+ .overlay {
+ bottom: -200px;
+ span {
+ width: 50%;
+ padding-top: 1em;
+ padding-bottom: 1em;
+ background-color: $color-light;
+ border-radius: 2em;
+ }
+ }
+ &:hover .overlay {
+ bottom: 0;
+ }
+}
+
+.gamme-card {
+ .gamme-card__title,
+ a {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+ .gamme-card__title {
+ padding: 1em 0.2em;
+ background-color: rgba($color-light, 0.5);
+ }
+ .overlay {
+ bottom: -50px;
+ span {
+ color: $color-light;
+ font-size: 30px;
+ font-family: $fontbarlow-bold;
+ padding-bottom: 50px;
+ }
+ }
+ &:hover .overlay {
+ bottom: 50px;
+ }
+}
+
+#list {
+ .wrapper > div:first-child {
+ padding-top: 0;
+ }
+ .title {
+ color: $color-light;
+ font-size: calc(#{$globalfont} * 2);
+ }
+ .is-flex {
+ margin-bottom: 60px;
+ column-gap: 20px;
+ flex-wrap: wrap;
+ flex-direction: initial;
+ }
+ .section-header {
+ // margin-bottom: 30px;
+ color: $color-light;
+
+ .title {
+ margin-bottom: 5px;
+ }
+ // .content {
+ // top: 30px;
+ // padding-left: 30px;
+ // padding-right: 30px;
+ // }
+ & > img {
+ object-fit: cover;
+ max-height: 243px;
+ }
+ }
+}
+
+.overlay {
+ span {
+ color: $color-brown;
+ // text-shadow: 0px 0px 2px #000;
+ }
+}
+
+// .is-brown {
+// header .content {
+// background-color: rgba($color-brown, 0.8);
+// }
+// .overlay {
+// background-color: rgba($color-brown, 0.8);
+// }
+// .product-card {
+// .overlay {
+// span {
+// color: $color-brown;
+// }
+// }
+// }
+// }
+
+// .is-orange {
+// header .content {
+// background-color: rgba($color-orange, 0.8);
+// }
+// .overlay {
+// background-color: rgba($color-orange, 0.8);
+// }
+// .product-card {
+// .overlay {
+// span {
+// color: $color-orange;
+// }
+// }
+// }
+// }
+
+// .is-grey {
+// header .content {
+// background-color: rgba($color-newgrey, 0.8);
+// }
+// .overlay {
+// background-color: rgba($color-newgrey, 0.8);
+// }
+// .product-card {
+// .overlay {
+// span {
+// color: $color-newgrey;
+// }
+// }
+// }
+// }
+
+// .is-yellow {
+// header .content {
+// background-color: rgba($color-main, 0.8);
+// }
+// .overlay {
+// background-color: rgba($color-main, 0.8);
+// }
+// .product-card {
+// .overlay {
+// span {
+// color: $color-main;
+// }
+// }
+// }
+// .gamme-card {
+// .overlay {
+// span {
+// color: $color-light;
+// }
+// }
+// }
+// }
+
+// .is-blue {
+// header .content {
+// background-color: rgba($color-newblue, 0.8);
+// }
+// .overlay {
+// background-color: rgba($color-newblue, 0.8);
+// }
+// .product-card {
+// .overlay {
+// span {
+// color: $color-newblue;
+// }
+// }
+// }
+// }
+
+// .is-green {
+// header .content {
+// background-color: rgba($color-green, 0.8);
+// }
+// .overlay {
+// background-color: rgba($color-green, 0.8);
+// }
+// .product-card {
+// .overlay {
+// span {
+// color: $color-green;
+// }
+// }
+// }
+// }
+
+// .is-pink {
+// header .content {
+// background-color: rgba($color-pink, 0.8);
+// }
+// .overlay {
+// background-color: rgba($color-pink, 0.8);
+// }
+// .product-card {
+// .overlay {
+// span {
+// color: $color-pink;
+// }
+// }
+// }
+// }
+
+#posts {
+ position: relative;
+
+ .sectiontitle:after {
+ content: "";
+ background-color: $color-dark;
+ }
+}
+
+.posts-list {
+ width: 1120px;
+ margin: 0 auto;
+ justify-content: center;
+ align-items: center;
+ flex-wrap: wrap;
+ column-gap: 20px;
+}
+.post-card {
+ width: 360px;
+ margin-bottom: 50px;
+}
+
+@media (min-width: 769px) {
+ #list .title {
+ font-size: calc(#{$globalfont} * 3.25);
+ }
+ .product-card {
+ width: 32%;
+ max-width: 32%;
+ }
+ .posts-list {
+ align-items: initial;
+ }
+ .gamme-card {
+ &:nth-child(n) {
+ width: 32%;
+ max-width: 32%;
+ }
+ }
+ // .gamme-card {
+ // &:nth-child(4),
+ // &:nth-child(5),
+ // &:nth-child(9),
+ // &:nth-child(10) {
+ // width: 49%;
+ // max-width: 49%;
+ // }
+ // }
+ // .gammes-6 .gamme-card {
+ // &:nth-child(n) {
+ // width: 32%;
+ // max-width: 32%;
+ // }
+ // }
+ .gammes-3 .gamme-card,
+ .gammes-6 .gamme-card,
+ .gammes-9 .gamme-card {
+ &:nth-child(1),
+ &:nth-child(2),
+ &:nth-child(3),
+ &:nth-child(4),
+ &:nth-child(5),
+ &:nth-child(6),
+ &:nth-child(7),
+ &:nth-child(8),
+ &:nth-child(9) {
+ width: 32%;
+ max-width: 32%;
+ }
+ }
+ .gammes-1 .gamme-card,
+ .gammes-2 .gamme-card,
+ .gammes-4 .gamme-card {
+ &:nth-child(1),
+ &:nth-child(2),
+ &:nth-child(3),
+ &:nth-child(4) {
+ width: 49%;
+ max-width: 49%;
+ }
+ }
+ .gammes-5 .gamme-card,
+ .gammes-8 .gamme-card {
+ &:nth-child(4),
+ &:nth-child(5) {
+ width: 49%;
+ max-width: 49%;
+ }
+ }
+ .gammes-7 .gamme-card {
+ &:nth-child(1),
+ &:nth-child(2),
+ &:nth-child(6),
+ &:nth-child(7) {
+ width: 49%;
+ max-width: 49%;
+ }
+ }
+
+ // .post-card {
+ // flex: 1;
+ // margin-right: 30px;
+
+ // &:last-child {
+ // margin-right: 0;
+ // }
+ // }
+
+ #list {
+ .section-header {
+ margin-bottom: 80px;
+
+ .content {
+ position: absolute;
+ width: 100%;
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+ }
+ }
+ }
+ #posts {
+ > img {
+ position: absolute;
+ top: 0;
+ left: 0;
+ // height: 50%;
+ z-index: -1;
+ object-fit: cover;
+ }
+ }
+}
+
+@media (max-width: 1024px) {
+ #list {
+ // .section-header {
+ // margin-bottom: 80px;
+ // }
+ .is-flex {
+ justify-content: center;
+ }
+ }
+}
+
+@media (max-width: 1200px) {
+ .posts-list {
+ width: 100%;
+ }
+ // .post-card {
+ // width: 360px;
+ // margin-bottom: 50px;
+ // }
+}
+
+@media (max-width: 768px) {
+ // #list {
+ // .wrapper > div:not(:last-child) {
+ // margin-bottom: 2rem;
+ // }
+ // .section-header {
+ // .content {
+ // position: relative;
+ // }
+ // }
+ // }
+ #posts {
+ > img {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 14%;
+ z-index: -1;
+ object-fit: cover;
+ }
+ }
+ .post-card {
+ width: 100%;
+ max-width: 360px;
+ }
+}
+
+@media (max-width: 480px) {
+ #posts > img {
+ height: 8%;
+ }
+}
diff --git a/resources/sass/frontend/_menu.scss b/resources/sass/frontend/_menu.scss
new file mode 100644
index 0000000..02cd61f
--- /dev/null
+++ b/resources/sass/frontend/_menu.scss
@@ -0,0 +1,213 @@
+.menu-overlay__checkbox {
+ display: none;
+}
+#menu_arrow {
+ display: none;
+}
+
+@media screen and (min-width: 800px) {
+ .menu {
+ width: 40%;
+ margin-left: 300px;
+ text-transform: uppercase;
+
+ &-overlay__btn {
+ display: none;
+ }
+
+ .menu__list {
+ display: flex;
+ justify-content: space-between;
+ }
+
+ a {
+ display: inline-block;
+ color: $color-blue;
+ text-decoration: none;
+ &:hover {
+ color: $color-second;
+ }
+ &.active {
+ position: relative;
+ color: $color-second;
+ }
+ &.active:before {
+ content: "";
+ position: absolute;
+ top: -60px;
+ left: 0;
+ right: 0;
+ width: 75px;
+ height: 4px;
+ margin-left: auto;
+ margin-right: auto;
+ background-color: $color-main;
+ }
+ }
+
+ .only-smrt {
+ display: none;
+ }
+ }
+}
+
+@media screen and (max-width: 799px) {
+ .menu {
+ order: 2;
+
+ .only-smrt a {
+ color: $color-second;
+ }
+
+ label {
+ display: flex;
+ align-items: flex-start;
+ justify-content: center;
+ position: fixed;
+ width: 2.8em;
+ height: 2.8em;
+ z-index: 9999;
+ }
+
+ &__list {
+ display: none;
+ }
+
+ &__link {
+ display: flex;
+ justify-content: space-between;
+ padding: 1em;
+ border-bottom: solid 1px $color-dark;
+ &:last-child {
+ border-bottom-width: 0;
+ }
+ #menu_arrow {
+ display: block;
+ width: 50px;
+ height: 19px;
+ transition: width 0.3s ease-in-out;
+ }
+ &:hover #menu_arrow {
+ width: 12px;
+ .cnt {
+ fill: $color-second;
+ }
+ }
+ }
+
+ .menu-overlay {
+ position: fixed;
+ display: flex;
+ right: 0;
+ z-index: 100;
+
+ &__icon {
+ display: block;
+ position: relative;
+ width: 1.5em;
+ height: 0.1em;
+ background: $color-light;
+ transition: 0.4s;
+
+ &:after,
+ &:before {
+ content: "";
+ display: block;
+ position: absolute;
+ width: 100%;
+ height: 0.1em;
+ background: $color-light;
+ border-radius: 2em;
+ transition: 0.4s;
+ }
+
+ &:before {
+ top: -10px;
+ }
+
+ &:after {
+ top: 10px;
+ }
+ }
+
+ &__btn {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ top: 0;
+ right: 20px;
+ justify-content: center;
+ cursor: pointer;
+ }
+
+ &__checkbox {
+ &:checked ~ .menu-overlay__btn .menu-overlay__icon {
+ background: 0 0;
+ }
+
+ &:checked ~ .menu-overlay__btn .menu-overlay__icon::before {
+ transform: rotate(45deg);
+ }
+
+ &:checked ~ .menu-overlay__btn .menu-overlay__icon::after {
+ transform: rotate(-45deg);
+ }
+
+ &:checked ~ .menu-overlay__btn .menu-overlay__icon::after,
+ &:checked ~ .menu-overlay__btn .menu-overlay__icon::before {
+ top: 0;
+ }
+
+ &:checked ~ .menu__list {
+ display: flex;
+ flex-direction: column;
+ position: fixed;
+ top: 50px;
+ left: 0;
+ width: 100%;
+ padding-top: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ text-transform: uppercase;
+ background-color: $color-light;
+ transition-delay: 0s;
+ box-shadow: 0 2px 8px rgba($color-dark, 0.2);
+ }
+ }
+ }
+ }
+}
+
+.secondmenu {
+ display: flex;
+ justify-content: flex-end;
+ position: relative;
+
+ .search-form {
+ display: none;
+ position: absolute;
+ width: 240px;
+ right: 0;
+ top: 40px;
+ padding: 15px 10px 10px;
+ border: none;
+ border-radius: 5px;
+ box-shadow: 1px 1px 5px 2px #333;
+ background-color: #fff;
+
+ &.is-visible {
+ display: initial;
+ }
+ .search-form__input {
+ width: 100%;
+ border: none;
+ border-bottom: 1px solid #000;
+ }
+ }
+}
+
+@media screen and (max-width: 799px) {
+ .secondmenu {
+ margin-right: 3em;
+ }
+}
diff --git a/resources/sass/_newsletter.scss b/resources/sass/frontend/_newsletter.scss
similarity index 100%
rename from resources/sass/_newsletter.scss
rename to resources/sass/frontend/_newsletter.scss
diff --git a/resources/sass/_punchline.scss b/resources/sass/frontend/_punchline.scss
similarity index 100%
rename from resources/sass/_punchline.scss
rename to resources/sass/frontend/_punchline.scss
diff --git a/resources/sass/_resets.scss b/resources/sass/frontend/_resets.scss
similarity index 100%
rename from resources/sass/_resets.scss
rename to resources/sass/frontend/_resets.scss
diff --git a/resources/sass/_texts.scss b/resources/sass/frontend/_texts.scss
similarity index 56%
rename from resources/sass/_texts.scss
rename to resources/sass/frontend/_texts.scss
index 63517a7..26aa686 100644
--- a/resources/sass/_texts.scss
+++ b/resources/sass/frontend/_texts.scss
@@ -2,22 +2,30 @@ p {
margin-bottom: 10px;
}
-h1 {
+h1,
+.page-subtitle,
+.header-title {
margin-bottom: 25px;
+ display: flex;
+ justify-content: center;
}
h1,
-.sectiontitle {
+.sectiontitle,
+.page-subtitle {
position: relative;
padding-bottom: 20px;
}
-.sectiontitle {
+.sectiontitle,
+.sectiontitle h2 {
font-size: 38px;
}
-h1:not(.maintitle):after,
-.sectiontitle:after {
+// h1:not(.maintitle):after,
+.header-title:after,
+.sectiontitle:after,
+.page-subtitle:after {
content: "";
position: absolute;
bottom: 0;
@@ -29,30 +37,44 @@ h1:not(.maintitle):after,
margin-right: auto;
background-color: $color-main;
}
+.header-title h1 {
+ margin-bottom: 0;
+}
+h1.blue-line:not(.maintitle):after,
+.sectiontitle.blue-line:after,
+.page-subtitle.blue-line:after {
+ background-color: $color-blue;
+}
+h1.white-line:not(.maintitle):after,
+.sectiontitle.white-line:after,
+.page-subtitle.white-line:after {
+ background-color: white;
+}
h1:not(.maintitle) {
display: inline-block;
position: relative;
}
+.page-subtitle {
+ //display: block;
+ position: relative;
+ margin-left: auto;
+ margin-right: auto;
+}
+
.maintitle {
font-family: $fontbarlow-bold;
}
.mascotte:before {
content: url(~@/images/coq.png);
+ display: none;
position: absolute;
left: -450px;
bottom: 0;
}
-.cuisto:before {
- content: url(~@/images/cuisto.jpg);
- position: absolute;
- left: -350px;
- top: -50px;
-}
-
.h2 {
margin-bottom: 0;
font-family: $fontbarlow-regular;
@@ -72,9 +94,18 @@ h3:not(.product-card__title) {
h3 {
font-family: $fontbarlow-bold;
}
-
+h3.product-card__title {
+ font-family: $fontcocon-regular;
+}
+@media screen and (min-width: 1024px) {
+ .mascotte:before {
+ display: block;
+ font-size: 48px;
+ }
+}
@media screen and (min-width: 800px) {
- h1,
+ h1:not(.title_page),
+ .page-subtitle,
h2 {
font-size: 48px;
}
@@ -87,7 +118,8 @@ h3 {
}
@media screen and (max-width: 799px) {
- h1 {
+ h1:not(.title_page),
+ .page-subtitle {
font-size: 32px;
}
h2 {
diff --git a/resources/sass/_timeline.scss b/resources/sass/frontend/_timeline.scss
similarity index 75%
rename from resources/sass/_timeline.scss
rename to resources/sass/frontend/_timeline.scss
index 2a161f4..861f80b 100644
--- a/resources/sass/_timeline.scss
+++ b/resources/sass/frontend/_timeline.scss
@@ -1,7 +1,7 @@
.timeline {
position: relative;
max-width: 1200px;
- margin: 0 auto;
+ margin: 4rem auto 0;
.year {
display: inline-block;
padding: 15px 30px;
@@ -21,9 +21,9 @@
margin-right: 20px;
}
- &:last-child {
- padding-bottom: 150px;
- }
+ // &:last-child {
+ // padding-bottom: 150px;
+ // }
&.special > img {
display: block;
@@ -31,7 +31,9 @@
margin-bottom: 20px;
margin-left: 30%;
}
-
+ .step_content {
+ background-color: #fff;
+ }
.step_title {
margin-bottom: 10px;
&:nth-child(odd) {
@@ -41,7 +43,9 @@
color: $color-blue;
}
}
-
+ &:not(:last-child) {
+ margin-bottom: 2rem;
+ }
&:nth-child(odd) .step_title {
color: $color-second;
}
@@ -60,10 +64,14 @@
@media screen and (min-width: 800px) {
.timeline {
- background-image: url(~@/images/storyline.jpg);
- background-repeat: no-repeat;
- background-position: top 50px center;
+ // background-image: url(~@/images/storyline.jpg);
+ // background-repeat: no-repeat;
+ // background-position: top 50px center;
z-index: 0;
+ #frise-autoscroll {
+ // text-align: center;
+ top: 3rem;
+ }
.step {
width: 400px;
&.is-flex {
@@ -82,6 +90,9 @@
@media screen and (max-width: 799px) {
.timeline {
+ #frise-autoscroll {
+ display: none;
+ }
.step {
width: 100%;
&.is-flex {
diff --git a/resources/sass/frontend/_utils.scss b/resources/sass/frontend/_utils.scss
new file mode 100644
index 0000000..43896f0
--- /dev/null
+++ b/resources/sass/frontend/_utils.scss
@@ -0,0 +1,133 @@
+.align-center {
+ text-align: center;
+}
+
+.align-left {
+ text-align: left;
+}
+.align-justify {
+ text-align: justify;
+}
+.bold {
+ font-weight: bold;
+}
+.on-bottom {
+ z-index: -1;
+}
+.ttu {
+ text-transform: uppercase;
+}
+
+.has-bckg--grey {
+ background-color: #f5f5f5;
+}
+
+.is-flex {
+ display: flex;
+ &.vertical-center {
+ align-items: center;
+ }
+ &.horizontal-center {
+ justify-content: center;
+ }
+ &.start {
+ align-items: flex-start;
+ }
+ &.wrap {
+ flex-wrap: wrap;
+ }
+ &.space-between {
+ justify-content: space-between;
+ }
+ &.flex-center {
+ justify-content: center;
+ }
+ &.flex-col {
+ flex-direction: column;
+ }
+}
+.mt-5 {
+ margin-top: 3rem;
+}
+.is-small {
+ margin-top: 35px;
+ margin-bottom: 35px;
+ font-size: 12px;
+}
+
+.p-rel {
+ position: relative;
+}
+
+.p-abs {
+ position: absolute;
+}
+#list .p-abs {
+ position: static;
+}
+.p-abs.dual-center {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ // left: 50% !important;
+ // top: 50% !important;
+ // transform: translate(-50%, -50%) !important;
+}
+
+.color-red {
+ color: $color-second;
+}
+
+.color-blue {
+ color: $color-blue;
+}
+
+.color-yellow {
+ color: $color-main;
+}
+
+.font-size-medium {
+ font-size: 45px;
+}
+
+@media screen and (min-width: 800px) {
+ #list .p-abs {
+ position: absolute;
+ }
+ .p-abs.dual-center {
+ left: 50% !important;
+ top: 50% !important;
+ transform: translate(-50%, -50%) !important;
+ }
+ .is-flex .w25 {
+ flex-basis: 25%;
+ }
+ .is-flex .w50 {
+ flex-basis: 50%;
+ &:nth-child(2) {
+ margin-left: 35px;
+ }
+ }
+
+ .is-flex .w100 {
+ flex-basis: 100%;
+ &:nth-child(1) {
+ padding-right: 185px;
+ }
+ &:nth-child(2) {
+ margin-left: 35px;
+ }
+ }
+}
+
+@media screen and (max-width: 1024px) {
+ .is-flex {
+ flex-direction: column;
+ }
+ .blue-products.is-flex {
+ flex-direction: initial;
+ justify-content: center;
+ }
+ .smrt-align-center {
+ text-align: center;
+ }
+}
diff --git a/resources/sass/frontend/_variables.scss b/resources/sass/frontend/_variables.scss
new file mode 100644
index 0000000..53a0368
--- /dev/null
+++ b/resources/sass/frontend/_variables.scss
@@ -0,0 +1,23 @@
+$color-light: #fff !default;
+$color-dark: #0c1417 !default;
+$color-main: #fccf1d !default;
+$color-second: #ff0400 !default;
+
+$color-grey: #888 !default;
+$color-blue: #222f5c !default;
+$color-brown: #8b4437 !default;
+$color-green: #85b83f !default;
+$color-pink: #be366c !default;
+$color-orange: #d36500 !default;
+$color-newgrey: #cba583 !default;
+$color-newblue: #98c1e8 !default;
+
+$globalfont: 18px;
+
+// $fontrubik-normal: "rubik-variable", arial, sans-serif;
+// $fontrubik-light: "rubik-light", arial, sans-serif;
+// $fontrubik-italic: "rubik-italic", arial, sans-serif;
+$fontcocon-regular: "cocon-regular", arial, sans-serif;
+
+$fontbarlow-regular: "barlow-regular", arial, sans-serif;
+$fontbarlow-bold: "barlow-bold", arial, sans-serif;
diff --git a/resources/sass/app.scss b/resources/sass/frontend/compile.scss
similarity index 64%
rename from resources/sass/app.scss
rename to resources/sass/frontend/compile.scss
index afb229d..692ef79 100644
--- a/resources/sass/app.scss
+++ b/resources/sass/frontend/compile.scss
@@ -1,4 +1,8 @@
@import "resets";
+// Fonts
+// @import url("https://fonts.googleapis.com/css?family=Nunito");
+// // Bootstrap
+// @import "~bootstrap/scss/bootstrap";
@import "variables";
@import "fonts";
@@ -16,8 +20,11 @@
@import "list";
@import "punchline";
@import "newsletter";
+@import "animate.css";
+@import "animate";
@import "carrousel";
@import "carrousel2";
@import "timeline";
@import "custom";
+@import "cookies-ldc";
diff --git a/public/css/cookies-ldc.css b/resources/sass/frontend/cookies-ldc.scss
similarity index 100%
rename from public/css/cookies-ldc.css
rename to resources/sass/frontend/cookies-ldc.scss
diff --git a/resources/sass/layouts/backend/top_nav.scss b/resources/sass/layouts/backend/top_nav.scss
new file mode 100644
index 0000000..86a4c62
--- /dev/null
+++ b/resources/sass/layouts/backend/top_nav.scss
@@ -0,0 +1,3 @@
+#sidebarTop {
+ height: $topNavHeight;
+}
diff --git a/resources/seeds/gammes/131700_1.jpg b/resources/seeds/gammes/131700_1.jpg
new file mode 100644
index 0000000..f1e329b
Binary files /dev/null and b/resources/seeds/gammes/131700_1.jpg differ
diff --git a/resources/seeds/gammes/132505_1.jpg b/resources/seeds/gammes/132505_1.jpg
new file mode 100644
index 0000000..9fa7b08
Binary files /dev/null and b/resources/seeds/gammes/132505_1.jpg differ
diff --git a/resources/seeds/gammes/88853_1.jpg b/resources/seeds/gammes/88853_1.jpg
new file mode 100644
index 0000000..13a6650
Binary files /dev/null and b/resources/seeds/gammes/88853_1.jpg differ
diff --git a/resources/seeds/gammes/chicken-franks.jpg b/resources/seeds/gammes/chicken-franks.jpg
new file mode 100644
index 0000000..a7b0d8c
Binary files /dev/null and b/resources/seeds/gammes/chicken-franks.jpg differ
diff --git a/resources/seeds/gammes/entete-minis.jpg b/resources/seeds/gammes/entete-minis.jpg
new file mode 100644
index 0000000..62e996f
Binary files /dev/null and b/resources/seeds/gammes/entete-minis.jpg differ
diff --git a/resources/seeds/gammes/entete-pret-a-cuire.jpg b/resources/seeds/gammes/entete-pret-a-cuire.jpg
new file mode 100644
index 0000000..356b632
Binary files /dev/null and b/resources/seeds/gammes/entete-pret-a-cuire.jpg differ
diff --git a/resources/seeds/gammes/entete-volaille.jpg b/resources/seeds/gammes/entete-volaille.jpg
new file mode 100644
index 0000000..1fe88b7
Binary files /dev/null and b/resources/seeds/gammes/entete-volaille.jpg differ
diff --git a/resources/seeds/gammes/entete_chicken-franks.jpg b/resources/seeds/gammes/entete_chicken-franks.jpg
new file mode 100644
index 0000000..8a13711
Binary files /dev/null and b/resources/seeds/gammes/entete_chicken-franks.jpg differ
diff --git a/resources/seeds/gammes/gamme_volaille.jpg b/resources/seeds/gammes/gamme_volaille.jpg
new file mode 100644
index 0000000..2a629a3
Binary files /dev/null and b/resources/seeds/gammes/gamme_volaille.jpg differ
diff --git a/resources/seeds/moments/1933.jpg b/resources/seeds/moments/1933.jpg
new file mode 100644
index 0000000..2237ce8
Binary files /dev/null and b/resources/seeds/moments/1933.jpg differ
diff --git a/resources/seeds/moments/1955.jpg b/resources/seeds/moments/1955.jpg
new file mode 100644
index 0000000..2bd68a3
Binary files /dev/null and b/resources/seeds/moments/1955.jpg differ
diff --git a/resources/seeds/moments/1961.jpg b/resources/seeds/moments/1961.jpg
new file mode 100644
index 0000000..4e91552
Binary files /dev/null and b/resources/seeds/moments/1961.jpg differ
diff --git a/resources/seeds/moments/1980.jpg b/resources/seeds/moments/1980.jpg
new file mode 100644
index 0000000..6dee9be
Binary files /dev/null and b/resources/seeds/moments/1980.jpg differ
diff --git a/resources/seeds/moments/1992.jpg b/resources/seeds/moments/1992.jpg
new file mode 100644
index 0000000..bf65f8a
Binary files /dev/null and b/resources/seeds/moments/1992.jpg differ
diff --git a/resources/seeds/moments/1992_bis.jpg b/resources/seeds/moments/1992_bis.jpg
new file mode 100644
index 0000000..0d1fee9
Binary files /dev/null and b/resources/seeds/moments/1992_bis.jpg differ
diff --git a/resources/seeds/moments/2018.jpg b/resources/seeds/moments/2018.jpg
new file mode 100644
index 0000000..67b9b9e
Binary files /dev/null and b/resources/seeds/moments/2018.jpg differ
diff --git a/resources/seeds/moments/2021.jpg b/resources/seeds/moments/2021.jpg
new file mode 100644
index 0000000..8d12df5
Binary files /dev/null and b/resources/seeds/moments/2021.jpg differ
diff --git a/resources/seeds/moments/88832_2.png b/resources/seeds/moments/88832_2.png
new file mode 100644
index 0000000..da30f69
Binary files /dev/null and b/resources/seeds/moments/88832_2.png differ
diff --git a/resources/seeds/products/131700_1.png b/resources/seeds/products/131700_1.png
new file mode 100644
index 0000000..68e9728
Binary files /dev/null and b/resources/seeds/products/131700_1.png differ
diff --git a/resources/seeds/products/132504_2.png b/resources/seeds/products/132504_2.png
new file mode 100644
index 0000000..d202a76
Binary files /dev/null and b/resources/seeds/products/132504_2.png differ
diff --git a/resources/seeds/products/132505_2.png b/resources/seeds/products/132505_2.png
new file mode 100644
index 0000000..5925c51
Binary files /dev/null and b/resources/seeds/products/132505_2.png differ
diff --git a/resources/seeds/products/88891_2.png b/resources/seeds/products/88891_2.png
new file mode 100644
index 0000000..565946a
Binary files /dev/null and b/resources/seeds/products/88891_2.png differ
diff --git a/resources/seeds/products/89779_1.jpg b/resources/seeds/products/89779_1.jpg
new file mode 100644
index 0000000..f61ea18
Binary files /dev/null and b/resources/seeds/products/89779_1.jpg differ
diff --git a/resources/seeds/products/89779_1.png b/resources/seeds/products/89779_1.png
new file mode 100644
index 0000000..b3b3e45
Binary files /dev/null and b/resources/seeds/products/89779_1.png differ
diff --git a/resources/views/a-propos.blade.php b/resources/views/a-propos.blade.php
deleted file mode 100644
index 36bbd0d..0000000
--- a/resources/views/a-propos.blade.php
+++ /dev/null
@@ -1,186 +0,0 @@
-@extends('layouts.app')
-@section('title', __('Accueil'))
-@section('description', __("Découvrez DOUX, des produits de volailles françaises."))
-
-@section('content')
-
-
-
-
Qui sommes-nous ?
-
-
-
-
-
-
-
Le groupe , l'entreprise
-
-
Sous-titre
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt.
-
-
-
-
-
-
-
-
-
- 1
-
-
site de production à Quimper
-
-
-
-
- 224
-
-
Collaborateurs
-
-
-
-
- 100
-
-
Pays livrés
-
-
-
-
- 500
-
-
Références vendues
-
-
-
-
- 88
-
-
Plans d'expertise
-
-
-
-
- 12
-
-
Franks Doux consommées chaque seconde dans le monde
-
-
-
-
-
-
-
-
Nos valeurs
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostr
-
-
-
- Plaisir
-
-
-
- Partage
-
-
-
- Confiance
-
-
-
- Qualité
-
-
-
- Innovation
-
-
-
-
-
-
-
-
-
Notre histoire
-
-
-
-
-
- 1920
-
-
Lorem Ipsum dolor sit amet.
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostr
-
-
-
-
-
-
-
-
- 2021
-
-
Lorem Ipsum dolor sit amet.
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostr
-
-
-
-
-
-
-
- 2020
-
-
Lorem Ipsum dolor sit amet.
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostr
-
-
-
-
-
-
-
-
-
-
Nos engagements
-
-
-
-
Lorem ip sum dolor sit amet
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit
- in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
-
-
-
-
Lorem ip sum dolor sit amet
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit
- in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
-
-
-
-
-
-
-
-
-
-
-
Le label
-
-
-
Lorem ip sum dolor sit amet
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostr
- ud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostr
- ud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
-
-
-
-
-
-
-
-@endsection
\ No newline at end of file
diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php
new file mode 100644
index 0000000..ac5b30f
--- /dev/null
+++ b/resources/views/auth/login.blade.php
@@ -0,0 +1,73 @@
+@extends('layouts.backend')
+
+@section('content')
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/back/modules/input-error.blade.php b/resources/views/back/modules/input-error.blade.php
new file mode 100644
index 0000000..86d984b
--- /dev/null
+++ b/resources/views/back/modules/input-error.blade.php
@@ -0,0 +1,5 @@
+@if($errors->has($inputName))
+
+ {{ implode(',', $errors->get($inputName)) }}
+
+@endif
\ No newline at end of file
diff --git a/resources/views/back/modules/message.blade.php b/resources/views/back/modules/message.blade.php
new file mode 100644
index 0000000..295c2d8
--- /dev/null
+++ b/resources/views/back/modules/message.blade.php
@@ -0,0 +1,36 @@
+@if ($message = Session::get('success'))
+
Des produits incontournables, Authentiques et Innovants !
-
-
-
-
-
-
-
-
-
Gamme family
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
-
-
-
-
-
-
Produit 1
-
-
- Découvrir
-
-
-
-
-
-
Bouchées de Volaille
-
-
- Découvrir
-
-
-
-
-
-
-
-
Gamme Little Treats
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
-
-
-
-
-
-
Cordon bleu de Volaille
-
-
- Découvrir
-
-
-
-
-
-
Nuggets de volaille
-
-
- Découvrir
-
-
-
-
-
-
Milanèse de Volaille
-
-
- Découvrir
-
-
-
-
-
-
Escalope Viennoise de Volaille
-
-
- Découvrir
-
-
-
-
-
-
Croc de Volaille façon Bolognaise
-
-
- Découvrir
-
-
-
-
-
-
-
-
-@endsection
\ No newline at end of file
diff --git a/resources/views/emails/send-contact.blade.php b/resources/views/emails/send-contact.blade.php
new file mode 100644
index 0000000..2ed1a32
--- /dev/null
+++ b/resources/views/emails/send-contact.blade.php
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Message Contact
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Bonjour,
Voici un message envoyé depuis {{ config('app.name', 'Doux') }}
Entièrement dédiée aux professionnels ; boucheries, restaurations traditionnelles et points chauds, ID HALAL est un acteur majeur sur le marché du halal. La marque bénéficie d’une expertise et d’un savoir-faire uniques qui sont aujourd’hui reconnus sur le marché. Depuis plus de 20 ans, elle a su construire une relation de confiance et de transparence avec ses clients.
-
Id Halal met à profit quotidiennement ses compétences et son historique dans le domaine du halal, afin de proposer une offre complète de produits savoureux et incontournables adaptés aux professionnels des métiers de bouche pour varier les plaisirs et répondre aux attentes des consommateurs
Doux lance sa marque consacrée aux professionnels de la restauration. Une sélection de produits pensée pour faciliter la vie grâce à une offre évolutive en fonction des besoins.
-
-
-
- Le savoir-faire et l'expérience
-
-
-
- Des recettes et un conditionnement adaptés
-
-
-
- Remise en oeuvre facile et rapide
-
-
-
- La qualité et le goût des produits
-
-
-
- Des exclusivités produits pour la restauration
-
-
-
-
-
-
-
-
-
-
Les produits
-
Nous travaillons toujours pour améliorer nos recettes et proposer des produits de meilleur qualité
-
-
-
-
-
Produit 1
-
-
- Découvrir
-
-
-
-
-
Produit 2
-
-
- Découvrir
-
-
-
-
-
Produit 3
-
-
- Découvrir
-
-
-
-
-
Produit 4
-
-
- Découvrir
-
-
-
-
-
-
-
-
-@endsection
\ No newline at end of file
diff --git a/resources/views/front/a-propos.blade.php b/resources/views/front/a-propos.blade.php
new file mode 100644
index 0000000..063afa4
--- /dev/null
+++ b/resources/views/front/a-propos.blade.php
@@ -0,0 +1,176 @@
+@extends('layouts.frontend')
+@section('title', $seoDatum->title)
+@section('description', $seoDatum->description)
+@section('keywords', $seoDatum->keywords)
+
+@section('content')
+
+
+
{{ __('Doux, La référence française de la volaille')}}
{!! __('Une question ? Une idée ? Un conseil ? Des informations sur nos produits ?') !!}
+
+
{!! __('N’hésitez-pas à nous contacter en renseignant le formulaire ci-dessous. Nous traiterons votre demande avec la plus grande attention dans les meilleurs délais.') !!}
+ @if(session()->has('status'))
+
+
{{ __('Votre message a bien été envoyé !') }}
+
{{ __('Nos services mettent tout en oeuvre pour y répondre au plus vite.') }}
+
+@endsection
diff --git a/resources/views/front/site-map.blade.php b/resources/views/front/site-map.blade.php
new file mode 100644
index 0000000..bbbfc01
--- /dev/null
+++ b/resources/views/front/site-map.blade.php
@@ -0,0 +1,102 @@
+@extends('layouts.frontend')
+@section('title', __('Accueil'))
+@section('description', __("Découvrez DOUX, des produits de volailles françaises."))
+
+@section('content')
+
+
+
+
+
+
+
p- CoconPro-regular
+
+
+
+
+
+
+
p- CoconPro-regular
+
+
+
+
+
+
+
p- CoconPro-regular
+
+
+
+
+
+
+
+
+
Plan du site
+
H2 - Rubik - Regular
+
+
+
+
+
+
H3 - CoconPro Regular
+
iD HALAL est la marque spécialiste du halal dédiée aux professionnels ; boucheries, restaurations traditionnelles et points chauds. , la marque est un acteur incontournable sur le marché de la restauration. >> Rubik - Light
+
H3
+
ID Halal s’engage quotidiennement à vous proposer des produits halal vous garantissant origine, traçabilité et certification.
iD HALAL vous propose un large éventail de produits de volaille et de charcuterie Halal en frais et en surgelé. Une gamme complète de produits incontournables et authentiques pour varier les plaisirs et répondre aux attentes des consommateurs d’aujourd’hui.
Des recettes qualitatives élaborées avec du filet de poulet anatomique
+ et des ingrédients nobles. Une offre gourmande et généreuse pour toute la famille!
+
+
+
+
+
+
+
+
+ Découvrez la gamme "L'Authentique" !
+
+
+
Des recettes qualitatives élaborées avec du filet de poulet anatomique
+ et des ingrédients nobles. Une offre gourmande et généreuse pour toute la famille!
+
+
+
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/gammes.blade.php b/resources/views/gammes.blade.php
deleted file mode 100644
index 28b80c2..0000000
--- a/resources/views/gammes.blade.php
+++ /dev/null
@@ -1,89 +0,0 @@
-@extends('layouts.app')
-@section('title', __('Accueil'))
-@section('description', __("Découvrez DOUX, des produits de volailles françaises."))
-
-@section('content')
-
-
-
-
Nos gammes produits
-
-
-
-
-
-
-
-
-
-
-
Toutes nos gammes
-
-
-
Des produits incontournables, Authentiques et Innovants !
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Vollailes entières
-
-
-
-
-
-
-
-
- Franks
-
-
-
-
-
-
-
-
- Découpe
-
-
-
-
-
-
-
-
- Découpe
-
-
-
-
-
-
-
-
- Découpe
-
-
-
-
-
-
-
-
-@endsection
\ No newline at end of file
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
deleted file mode 100644
index ecb2155..0000000
--- a/resources/views/home.blade.php
+++ /dev/null
@@ -1,137 +0,0 @@
-@extends('layouts.app')
-@section('title', __('Accueil'))
-@section('description', __("Découvrez DOUX, des produits de volailles françaises."))
-
-@section('content')
-
-
-
-
-
-
-
-
-
- Doux, Plaisir et qualité à la française
-
-
-
-
-
-
-
-
-
-
- Doux, Plaisir et qualité à la française
-
-
-
-
-
-
-
-
-
-
- Doux, Plaisir et qualité à la française
-
-
-
-
-
-
-
-
-
-
-
- La référence française de la volaille
-
-
-
- 90 ans d'expérience au service de la gourmandise
-
-
-
-
-
-
-
Notre Histoire
-
- Tout commence lorsque Pierre Doux se lance dans une activité de
- négoce de poulet en 1933, avant de créer une entreprise à son
- nom en 1955. Durant près de 90 ans, l'activité n'a cessé de se
- développer toujours dans le but de répondre aux besoins nouveaux
- de la société ; offrant en plus des volailles entières, des
- produits panés ou des Chicken Franks rapides et faciles à
- préparer.
-
-
- Aujourd'hui, la marque Doux est présente dans plus de 100 pays
- avec des gammes de produits variés : volailles entières,
- découpes ou produits élaborés halal pour satisfaire les
- exigences culturelles et religieuses des familles aux 4 coins du
- monde. En 2021, elle continue d'innover pour satisfaire vos
- envies avec son Steak Haché de poulet et ses Mini Chicken
- Franks.
-
- Doux innove et propose sa référence iconique en format mini !
-
-
-
- Découvrez nos nouveautés : les Mini Chicken Franks Doux. Original ou
- Cheese, retrouvez vos deux recettes préférées en version mini. Ce
- format est idéal pour les moments de partage et les repas sur le
- pouce. Réchauffez les au micro-ondes, elles seront prêtes en
- quelques minutes seulement. Très pratique et pensées pour vous
- faciliter la vie ! N'hésitez plus et laissez vous tenter !
-
iD HALAL est la marque spécialiste du halal dédiée aux professionnels ; boucheries, restaurations traditionnelles et points chauds. , la marque est un acteur incontournable sur le marché de la restauration. >> Rubik - Light
-
H3
-
ID Halal s’engage quotidiennement à vous proposer des produits halal vous garantissant origine, traçabilité et certification.
iD HALAL vous propose un large éventail de produits de volaille et de charcuterie Halal en frais et en surgelé. Une gamme complète de produits incontournables et authentiques pour varier les plaisirs et répondre aux attentes des consommateurs d’aujourd’hui.
Des recettes qualitatives élaborées avec du filet de poulet anatomique
- et des ingrédients nobles. Une offre gourmande et généreuse pour toute la famille!
-
-
-
-
-
-
-
-
- Découvrez la gamme "L'Authentique" !
-
-
-
Des recettes qualitatives élaborées avec du filet de poulet anatomique
- et des ingrédients nobles. Une offre gourmande et généreuse pour toute la famille!
-
-
-
-
-
-
-
-
-
-@endsection
\ No newline at end of file
diff --git a/resources/views/news.blade.php b/resources/views/news.blade.php
deleted file mode 100644
index 31c4995..0000000
--- a/resources/views/news.blade.php
+++ /dev/null
@@ -1,123 +0,0 @@
-@extends('layouts.app')
-@section('title', __('Accueil'))
-@section('description', __("Découvrez DOUX, des produits de volailles françaises."))
-
-@section('content')
-
-
-
-
+ d'info ?
-
-
-
-
-
-
-
Nos conseils ...
-
-
-
-
-
-
-
...Nutritionnels
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
-
-
-
-
-
-
...Cuisines
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
-
-
-
-
-
-
-
-
- les questions
- utiles
-
-
-
-
-
-
-
-
-
Peut-on recongeler après décongélation ?
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
-
Qu'est-ce qu'un repas équilibré ?
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
-
Comment la volaille participe à mon équilibre ?
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
-
-
-
-
-
-
Actualité
-
Lorem Ipsum
-
-
-
-
Lorem ip sum dolor sit amet
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostr
- ud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliq
- ua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
-
-
Lorem ip sum dolor sit amet
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostr
- ud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliq
- ua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
-
-
Lorem ip sum dolor sit amet
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostr
- ud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliq
- ua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
-
-
-
-
-
-
-
Nos nouveautés
-
Nous travaillons toujours pour améliorer nos recettes et proposer des produits de meilleure qualité
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@endsection
\ No newline at end of file
diff --git a/resources/views/policy.blade.php b/resources/views/policy.blade.php
deleted file mode 100644
index 23f8203..0000000
--- a/resources/views/policy.blade.php
+++ /dev/null
@@ -1,104 +0,0 @@
-@extends('layouts.app')
-@section('title', __('Accueil'))
-@section('description', __("Découvrez DOUX, des produits de volailles françaises."))
-
-@section('content')
-
-
-
-
-
-
-
-
p- CoconPro-regular
-
-
-
-
-
-
-
p- CoconPro-regular
-
-
-
-
-
-
-
p- CoconPro-regular
-
-
-
-
-
-
-
-
-
Charte de confidentialité
-
H2 - Rubik - Regular
-
-
-
-
-
-
H3 - CoconPro Regular
-
iD HALAL est la marque spécialiste du halal dédiée aux professionnels ; boucheries, restaurations traditionnelles et points chauds. , la marque est un acteur incontournable sur le marché de la restauration. >> Rubik - Light
-
H3
-
ID Halal s’engage quotidiennement à vous proposer des produits halal vous garantissant origine, traçabilité et certification.
iD HALAL vous propose un large éventail de produits de volaille et de charcuterie Halal en frais et en surgelé. Une gamme complète de produits incontournables et authentiques pour varier les plaisirs et répondre aux attentes des consommateurs d’aujourd’hui.
Des recettes qualitatives élaborées avec du filet de poulet anatomique
- et des ingrédients nobles. Une offre gourmande et généreuse pour toute la famille!
-
-
-
-
-
-
-
-
- Découvrez la gamme "L'Authentique" !
-
-
-
Des recettes qualitatives élaborées avec du filet de poulet anatomique
- et des ingrédients nobles. Une offre gourmande et généreuse pour toute la famille!
-
-
-
-
-
-
-
-
-
-@endsection
\ No newline at end of file
diff --git a/resources/views/product.blade.php b/resources/views/product.blade.php
deleted file mode 100644
index db10fed..0000000
--- a/resources/views/product.blade.php
+++ /dev/null
@@ -1,66 +0,0 @@
-@extends('layouts.app')
-@section('title', __('Accueil'))
-@section('description', __("Découvrez DOUX, des produits de volailles françaises."))
-
-@section('content')
-
-
-
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt.
-
Lorem ip sum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullam
-
- Les +
- Produit
-
-
-
-
Lorem ipsum dolor sit amet consectetur
-
-
-
-
-
-
Lorem ipsum dolor sit amet consectetur
-
-
-
-
-
-
Lorem ipsum dolor sit amet consectetur
-
-
-
-
-
-
-
-
-
-
-
-@endsection
\ No newline at end of file
diff --git a/resources/views/products-list.blade.php b/resources/views/products-list.blade.php
deleted file mode 100644
index efc4954..0000000
--- a/resources/views/products-list.blade.php
+++ /dev/null
@@ -1,74 +0,0 @@
-@extends('layouts.app')
-@section('title', __('Accueil'))
-@section('description', __("Découvrez DOUX, des produits de volailles françaises."))
-
-@section('content')
-
-
-
-
Des produits Incontournables, Authentiques et Innovants !
-
-
-
-
-
-
-
-
-
Produit 1
-
-
- Découvrir
-
-
-
-
-
-
Produit 2
-
-
- Découvrir
-
-
-
-
-
-
Produit 3
-
-
- Découvrir
-
-
-
-
-
-
Produit 4
-
-
- Découvrir
-
-
-
-
-
-
-@endsection
\ No newline at end of file
diff --git a/resources/views/site-map.blade.php b/resources/views/site-map.blade.php
deleted file mode 100644
index d6f6cf4..0000000
--- a/resources/views/site-map.blade.php
+++ /dev/null
@@ -1,104 +0,0 @@
-@extends('layouts.app')
-@section('title', __('Accueil'))
-@section('description', __("Découvrez DOUX, des produits de volailles françaises."))
-
-@section('content')
-
-
-
-
-
-
-
-
p- CoconPro-regular
-
-
-
-
-
-
-
p- CoconPro-regular
-
-
-
-
-
-
-
p- CoconPro-regular
-
-
-
-
-
-
-
-
-
Plan du site
-
H2 - Rubik - Regular
-
-
-
-
-
-
H3 - CoconPro Regular
-
iD HALAL est la marque spécialiste du halal dédiée aux professionnels ; boucheries, restaurations traditionnelles et points chauds. , la marque est un acteur incontournable sur le marché de la restauration. >> Rubik - Light
-
H3
-
ID Halal s’engage quotidiennement à vous proposer des produits halal vous garantissant origine, traçabilité et certification.
iD HALAL vous propose un large éventail de produits de volaille et de charcuterie Halal en frais et en surgelé. Une gamme complète de produits incontournables et authentiques pour varier les plaisirs et répondre aux attentes des consommateurs d’aujourd’hui.
Des recettes qualitatives élaborées avec du filet de poulet anatomique
- et des ingrédients nobles. Une offre gourmande et généreuse pour toute la famille!
-
-
-
-
-
-
-
-
- Découvrez la gamme "L'Authentique" !
-
-
-
Des recettes qualitatives élaborées avec du filet de poulet anatomique
- et des ingrédients nobles. Une offre gourmande et généreuse pour toute la famille!
-
-
-
-
-
-
-
-
-
-@endsection
\ No newline at end of file
diff --git a/resources/views/vendor/translation/forms/search.blade.php b/resources/views/vendor/translation/forms/search.blade.php
new file mode 100644
index 0000000..7d3a822
--- /dev/null
+++ b/resources/views/vendor/translation/forms/search.blade.php
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/resources/views/vendor/translation/forms/select.blade.php b/resources/views/vendor/translation/forms/select.blade.php
new file mode 100644
index 0000000..7d0c0f0
--- /dev/null
+++ b/resources/views/vendor/translation/forms/select.blade.php
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/views/vendor/translation/forms/text.blade.php b/resources/views/vendor/translation/forms/text.blade.php
new file mode 100644
index 0000000..6d04ab3
--- /dev/null
+++ b/resources/views/vendor/translation/forms/text.blade.php
@@ -0,0 +1,18 @@
+
+
+
+ @if($errors->has($field))
+ @foreach($errors->get($field) as $error)
+
{!! $error !!}
+ @endforeach
+ @endif
+
\ No newline at end of file
diff --git a/resources/views/vendor/translation/icons/globe.blade.php b/resources/views/vendor/translation/icons/globe.blade.php
new file mode 100644
index 0000000..902dabf
--- /dev/null
+++ b/resources/views/vendor/translation/icons/globe.blade.php
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/views/vendor/translation/icons/translate.blade.php b/resources/views/vendor/translation/icons/translate.blade.php
new file mode 100644
index 0000000..e9e438a
--- /dev/null
+++ b/resources/views/vendor/translation/icons/translate.blade.php
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/views/vendor/translation/languages/create.blade.php b/resources/views/vendor/translation/languages/create.blade.php
new file mode 100644
index 0000000..e356b59
--- /dev/null
+++ b/resources/views/vendor/translation/languages/create.blade.php
@@ -0,0 +1,41 @@
+@extends('translation::layout')
+
+@section('body')
+
+