Angulaire Material2 thématisation - comment mettre en application d'arrière-plan?
Je suis de la construction d'une angular2 application à l'aide angulaire material2. Je suis en train de mettre le fond de ma demande "la bonne façon", mais je ne peux pas comprendre comment.
J'ai trouvé une classe que je peux utiliser sur mon <body>
élément: mat-app-background
qui je peux ajouter, qui me donne une couleur par défaut (en fonction de si je suis en utilisant la lumière ou de thèmes sombres).
Je souhaite définir cette couleur d'arrière-plan à utiliser mes marques de couleur, mais je ne peux pas comprendre comment le faire.
Dans _theming.scss
il est défini comme suit:
//Mixin that renders all of the core styles that depend on the theme.
@mixin mat-core-theme($theme) {
@include mat-ripple-theme($theme);
@include mat-option-theme($theme);
@include mat-pseudo-checkbox-theme($theme);
//Wrapper element that provides the theme background when the
//user's content isn't inside of a `md-sidenav-container`.
.mat-app-background {
$background: map-get($theme, background);
background-color: mat-color($background, background);
}
...
}
J'ai donc pensé qu'il serait judicieux d'essayer d'ajouter de la couleur d'arrière-plan de mon thème personnalisé, en quelque sorte, mais je ne pouvais pas comprendre comment le faire.
Sur le Material2 la thématisation la documentation, il dit seulement:
"Dans Angulaire de la matière, un thème est créé par la composition de plusieurs palettes. En particulier, un thème se compose de:
- Primaire palette de couleurs: des couleurs plus largement utilisé sur tous les écrans et composants.
- Un accent palette de couleurs: les couleurs utilisées pour le flottant sur le bouton d'action et des éléments interactifs.
- Un avertir palette de couleurs: les couleurs utilisées pour transmettre un état d'erreur.
- Une palette de premier plan: des couleurs pour le texte et les icônes.
- Un arrière-plan de la palette: les couleurs utilisées pour l'élément de milieux.
"
Comment puis-je ajouter mon parcours pour le thème, ou de le faire d'une autre manière?
Bien sûr, bien que je ne peut pas vérifier qu'elle fonctionne depuis que nous avons abandonné notre Angulaire du projet, et je ne peux même pas se rappeler ce qu'on a fait à la fin ^_^
OriginalL'auteur Narxx | 2017-05-11
Vous devez vous connecter pour publier un commentaire.
Si vous voulez changer le thème de couleur d'arrière-plan pour l'ensemble de l'application de manière propre, vous pouvez remplacer votre thème avec le suivant.
Cela suppose que vous avez déjà configuré votre
$theme
à l'aide demat-light-theme
oumat-dark-theme
. Bien sûr, vous pouvez remplacer$mat-blue-grey
pour une carte de la couleur de votre choix.Voici un exemple complet de la façon dont je suis en utilisant ce. J'ai le texte suivant dans un fichier appelé
theme.scss
, qui est inclus dans monangular.json
"styles" d'entrée:pourriez-vous montrer un exemple de comment l'utiliser? je suis nouveau sur scss et de la thématisation. je reçois un message d'erreur sur map_merge.. je ne sais pas si j'ai besoin d'un mixin ou quoi. il dit que ce n'est pas valide css et montre mon thème. dans ( )
J'ai été faire des erreurs similaires. Je pense que vous devez inclure les fichiers spécifiques. L'erreur concerne la map_merge pas en mesure de trouver le mixin variable dans le contexte du fichier. Permettez-moi de vérifier mes fichiers.. peut-être que je peux mettre à jour cette réponse un peu plus. Jake j'espère que vous n'avez pas l'esprit? (Mais c'est une très bonne réponse de toute façon - devrait Probablement être accepté par un)
J'ai ajouté un exemple complet de la façon dont je suis en utilisant ce. Il est possible que vous pourriez aussi avoir besoin de
@import '~@angular/material/theming';
si vous ne l'avez pas fait d'ailleurs.Excellent. Il est important de noter, le thème-map est une propriété de l'arrière plan qui est en arrière-plan, carte. En arrière-plan, carte, il y a un autre arrière-plan de la propriété, ainsi que de nombreuses autres propriétés. La propriété, je voulais cible qui a fond > carte (propriété qui détermine la couleur de fond pour le mat-menu). À la recherche de la variable
$mat-dark-theme-background
dans le_theming.scss
fichier pour toutes les propriétés disponibles dans la carte d'arrière-plan.OriginalL'auteur Jake Stoeffler
Si vous souhaitez définir les couleurs d'arrière-plan, il est probable que vous souhaitez personnaliser l'ensemble de l'arrière-plan et avant-plan de la palette, en imitant le mat-lumière-thème ou mat-foncé-fonctions du thème avec votre propre remplacement. Votre remplacement serait d'inclure vos propres palettes au lieu de la mat-lumière-thème de premier plan et d'arrière-plan palettes.
exemple: https://stackblitz.com/edit/angular-material-custom-background?file=theme.scss
Je ne sais pas si cette méthode est recommandée ou officiellement pris en charge.
OriginalL'auteur Benjamin Kindle
voir : palette thème scss sur github Angulaire (2) Matériel (2)
Extrait du code:
<body>
élément, comme décrit Dans la question?Je viens de refedined ces valeurs avec ma propre avant d'appeler
mat-light-theme($app-primary, $app-accent, $app-warn)
et cela a fonctionné 😀Veuillez fournir de l'information sur la mise en œuvre de cette
Pas beaucoup d'aide pour les noobs de l'apprentissage Angulaire du Matériel 4. Je veux dire, le lien hypertexte vers la source est déjà partout. Un petit indice quant à la façon de remplacer ces correctement, serait une bien meilleure réponse.
ne fonctionne pas pour moi
OriginalL'auteur kortex
Il n'y a aucun moyen de le faire "correctement" - que des solutions de contournement et hacks. Votre thème peut définir le primaire, le secondaire, et d'avertir les palettes, mais pas de premier plan et d'arrière-plan palettes. La raison probable pourquoi il n'y a pas une ligne directe/moyen facile de le faire dans Angulaire est que selon la Conception de Matériel que vous ne devriez pas faire cela. La couleur est destiné à être utilisé dans un moyen de mettre en valeur et de style différents éléments en fonction de votre thème, mais en arrière-plan et les couleurs de premier plan pour la plaine de contenu est destiné à être gris clair ou foncé - pas de couleur. Si vous avez vraiment besoin pour ce faire, les autres suggestions concernant la redéfinition du thème d'arrière-plan ou à l'aide de votre propre classe devrait être suffisant.
Grâce à la citrouille - ma réponse dit essentiellement la même chose sur d'autres façons de le faire, même si votre petit ami de Jake réponse a été posté plus de deux mois après le mien. 😉
C'est
ppumkin
pour une raison ( je vous assure que mon QI est bien au-dessus de 100) et je suis heureux homme marié merci 😀 je sais qu'il l'a posté plus tard, c'est pourquoi j'ai commenté Parce que les réponses peuvent être mises à jour, des ANNÉES plus tard que les changements de technologie ou de meilleures façons sont créés.j'ai besoin d'aide en utilisant une de ces méthodes! que faire si je veux personnaliser le gris? aussi je ne peux pas obtenir jakes réponse pour le travail :))))
OriginalL'auteur G. Tranter
Il y a aussi un mélange de couleurs comme ceci:
Lorsque l'on regarde angulaire du matériel de composants vous pouvez attribuer une couleur comme ça.
Qui feront de votre barre d'outils de la couleur de votre couleur primaire.
aussi assurez-vous de regarder _theming.scss fichier angulaire du matériel.
de sorte que vous pouvez utiliser ces mixin de tirer juste une couleur de la palette.
color
directive (comme vous l'avez suggéré:color="background"
). Est-il possible de faire cela?eh bien, Si vous essayez d'ajouter un arrière-plan pour votre site web, alors vous devriez probablement juste utiliser la balise body et vous pouvez tirer une couleur avec le mixin. Si vous êtes à la rédaction d'un composant personnalisé à l'aide de matériel ou de matériaux, alors vous devez intégrer le thème des couleurs automatique des couleurs, en supposant que quelqu'un d'autre d'utiliser votre composant que vous avez écrit (datepicker, ou etc) Si vous utilisez un construit en composant matériel, puis ils exposent les [couleur]=primaire, qui n'existent pas dans la normale angulaire ou html de la boîte.
Comment puis-je régler l'arrière-plan de la
<body>
tag alors? Autres que de coder en dur à l'intérieur deindex.html
quelque chose comme:<body style="background-color: #123123">
? Le<app-root>
élément est à l'INTÉRIEUR de la<body>
...en faisant une feuille de style globale, en mettant la refrence de cette feuille de style dans votre index.html (angulaires-cli est livré avec une déjà) et en ce que la feuille de style globale si vous n'avez body { background-color: #123123; } qui permettrait de définir globalement le BG color.
OriginalL'auteur Zuriel
Pas exactement la réponse à votre question, mais je suppose que beaucoup de gens se retrouvent ici de la recherche pour "comment mettre en application couleur d'arrière-plan".
Dans votre
project/index.html
ensemble de votre corps de la classe demat-app-background
Et assurez-vous que dans votre
project/angular.json
vous avez:OriginalL'auteur Caner
Je voudrais suggérer que vous déclarez une couleur de fond dans une des variables fichier (en supposant que vous êtes à l'aide de sass) ensuite, il suffit de l'importer en cas de besoin. Par exemple:-
body
règle de CSS, de sorte qu'il soit accessible surindex.html
? Depuis Material2 encapsule les styles pour le bon composant, le<body>
élément est hors de tout composant. C'est là que.mat-app-background
entre dans l'image, parce qu'il fonctionne, mais.Je ne suis pas sûr de savoir comment le remplacer...Cela ne fonctionne pas
OriginalL'auteur micko
pour plus de solution si la précédente n'a pas fonctionné, j'angulaire du matériel de travail 2 avec encapsulation style donc, tout ce que tu vas faire, vous ne pouvez pas personnaliser angulaire de l'élément matériel de l'extérieur donc une solution idéale pour que je l'utilise toujours essayer cette
1 - vous pouvez utiliser ce hack qui va vous donner des possibilités pour personnaliser angulaire de l'élément matériel si vous le souhaitez définir
ViewEncapsulation.None
ou
2 - si vous voulez juste pour modifier l'arrière-plan, vous pouvez simplement essayer cette
- ce que ça va changer la couleur d'arrière-plan de l'ensemble de votre application
OriginalL'auteur Amir Fawzy