* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
:root {
–primary-color: #9c27b0;
–primary-light: #f3e5f5;
–primary-dark: #7b1fa2;
–text-color: #333;
–text-light: #666;
–bg-light: #f8f9fa;
–border-color: #e9ecef;
–container-padding: 30px;
–card-radius: 8px;
–shadow: 0 2px 10px rgba(0,0,0,0.1);
–transition: all 0.3s ease;
}
body {
font-family: ‘Segoe UI’, Tahoma, Geneva, Verdana, sans-serif;
margin: 0;
padding: 20px;
background-color: #f5f5f5;
color: var(–text-color);
line-height: 1.6;
}
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
background-color: white;
padding: var(–container-padding);
border-radius: var(–card-radius);
box-shadow: var(–shadow);
}
h1 {
color: #2c3e50;
text-align: center;
margin-bottom: 30px;
font-size: 2.2em;
word-wrap: break-word;
}
.intro {
margin-bottom: 30px;
line-height: 1.6;
font-size: 1.1em;
}
.intro p {
margin-bottom: 15px;
}
.resources-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 25px;
margin-top: 30px;
}
.resource-card {
background-color: var(–bg-light);
border-radius: var(–card-radius);
padding: 25px;
text-align: center;
transition: var(–transition);
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
display: flex;
flex-direction: column;
justify-content: center;
min-height: 200px;
text-decoration: none;
color: var(–text-color);
border: 2px solid var(–border-color);
touch-action: manipulation;
position: relative;
overflow: hidden;
}
.resource-card:hover, .resource-card:focus {
transform: translateY(-5px);
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
background-color: #fff;
border-color: var(–primary-color);
outline: none;
}
.resource-card:active {
transform: translateY(0);
transition: transform 0.1s;
}
.resource-card h3 {
margin-top: 0;
color: var(–primary-color);
font-size: 1.4em;
margin-bottom: 10px;
}
.resource-card p {
margin-bottom: 15px;
font-size: 1em;
color: var(–text-light);
line-height: 1.5;
}
.examples {
margin-top: 15px;
font-style: italic;
color: #2c3e50;
font-size: 0.95em;
}
.icon {
font-size: 2.2em;
margin-bottom: 15px;
color: var(–primary-color);
}
footer {
margin-top: 40px;
text-align: center;
font-size: 0.9em;
color: var(–text-light);
padding-top: 20px;
border-top: 1px solid #eee;
}
footer p {
margin-bottom: 10px;
}
.navigation {
display: flex;
justify-content: space-between;
margin-bottom: 20px;
flex-wrap: wrap;
gap: 10px;
}
.button {
display: inline-block;
padding: 10px 15px;
background-color: var(–primary-color);
color: white;
border-radius: 5px;
text-decoration: none;
font-weight: bold;
transition: background-color 0.3s;
touch-action: manipulation;
text-align: center;
min-width: 130px;
border: none;
cursor: pointer;
}
.button:hover, .button:focus {
background-color: var(–primary-dark);
outline: none;
}
.level-tabs {
display: flex;
justify-content: center;
margin: 20px 0;
gap: 10px;
flex-wrap: wrap;
}
.level-tab {
padding: 8px 16px;
background-color: #e9ecef;
border-radius: 20px;
text-decoration: none;
color: #495057;
font-weight: 500;
transition: all 0.3s;
touch-action: manipulation;
text-align: center;
min-width: 100px;
}
.level-tab:hover, .level-tab:focus, .level-tab.active {
background-color: var(–primary-color);
color: white;
outline: none;
}
.info-box {
background-color: var(–bg-light);
border-left: 4px solid var(–primary-color);
padding: 15px;
margin: 20px 0;
border-radius: 4px;
}
.info-box h4 {
margin-top: 0;
color: var(–primary-color);
margin-bottom: 10px;
}
.table-container {
overflow-x: auto;
margin: 20px 0;
border-radius: var(–card-radius);
box-shadow: var(–shadow);
}
table {
width: 100%;
border-collapse: collapse;
min-width: 600px;
}
th, td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #ddd;
}
th {
background-color: var(–primary-light);
color: var(–primary-color);
position: sticky;
top: 0;
}
tr:hover {
background-color: #f5f5f5;
}
/* Styles pour écrans moyens (tablettes) */
@media screen and (max-width: 992px) {
:root {
–container-padding: 20px;
}
.resources-grid {
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
gap: 20px;
}
h1 {
font-size: 2em;
}
.intro {
font-size: 1em;
}
.resource-card {
min-height: 180px;
padding: 20px;
}
}
/* Styles pour petits écrans (téléphones) */
@media screen and (max-width: 768px) {
:root {
–container-padding: 15px;
}
body {
padding: 10px;
}
.container {
padding: var(–container-padding);
margin: 0;
border-radius: 6px;
}
.resources-grid {
grid-template-columns: 1fr;
gap: 15px;
}
h1 {
font-size: 1.8em;
margin-bottom: 20px;
}
.intro p {
font-size: 1em;
margin-bottom: 10px;
}
/* Navigation responsive */
.navigation {
flex-direction: column;
gap: 10px;
}
.button {
display: block;
width: 100%;
padding: 12px 15px;
}
/* Onglets de niveau responsive */
.level-tabs {
justify-content: space-between;
}
.level-tab {
flex: 1;
padding: 10px 8px;
font-size: 0.9em;
min-width: 30%;
}
/* Cartes optimisées pour tactile */
.resource-card {
min-height: auto;
padding: 20px 15px;
}
.resource-card h3 {
font-size: 1.2em;
}
.icon {
font-size: 1.8em;
margin-bottom: 10px;
}
/* Tableaux responsives */
.table-container {
margin: 15px -5px;
width: calc(100% + 10px);
}
table {
font-size: 0.9em;
}
th, td {
padding: 10px 8px;
}
}
/* Support pour très petits écrans */
@media screen and (max-width: 360px) {
.level-tab {
font-size: 0.8em;
padding: 8px 5px;
}
.resource-card h3 {
font-size: 1.1em;
}
.examples {
font-size: 0.9em;
}
}
/* Support pour appareils à haute densité de pixels */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
}
/* Se eliminó completamente la sección de modo oscuro para mantener el aspecto original del sitio */
Les Noms en Français
Les noms constituent une partie fondamentale du discours en français. Ils désignent des personnes, des animaux, des objets, des lieux, des concepts ou des idées. En français, chaque nom possède un genre (masculin ou féminin) et un nombre (singulier ou pluriel).
Cette page vous propose différentes ressources pour maîtriser l’utilisation des noms en français à tous les niveaux.
Points essentiels à retenir
Genre : Tout nom est soit masculin, soit féminin (le livre, la table)
Nombre : Singulier ou pluriel, généralement formé en ajoutant -s (livre → livres)
Déterminants : Les noms sont généralement précédés d’un déterminant (article, possessif…)
Accord : Les adjectifs et participes s’accordent en genre et en nombre avec le nom
Le Genre des Noms
Comment déterminer si un nom est masculin ou féminin
Formation du Pluriel
Règles standard et exceptions pour former le pluriel
Féminisation des Noms
Comment former le féminin des noms de métiers et fonctions
Noms Composés
Formation et pluriel des noms composés
Noms Collectifs
Utilisation et accords avec les noms collectifs
Suffixes et Préfixes
Formation de nouveaux noms par dérivation
Pièges et Faux Amis
Noms dont le genre diffère des attentes
Exercices Pratiques
Textes à trous, QCM et exercices interactifs
Tableau récapitulatif des cas particuliers du pluriel
| Terminaison | Règle du pluriel | Exemple |
|---|---|---|
| -s, -x, -z | Invariable | un fils → des fils, une voix → des voix |
| -au, -eau, -eu | Ajout de -x | un bateau → des bateaux, un jeu → des jeux |
| -al | -aux | un cheval → des chevaux |
| -ail | Généralement -s | un détail → des détails |
| -ou | Généralement -s | un trou → des trous |
| Exceptions -ou | -oux | un bijou → des bijoux, un genou → des genoux |