Для того, чтобы : до и : после отображалось содержимое, вам необходимо установить ширину элемента ярлыка, поскольку внутри ярлыка нет содержимого (логически пустого), только тогда вы сможете увидеть псевдоэлементы, поскольку псевдоэлементы отображаются внутри элемента до и после содержимого элемента. Кроме того, для появления font-awesome вам нужны юникоды значков, которые вы хотите показать, чтобы вы могли передать их как атрибут html в css, но также вам необходимо явно установить семейство шрифтов для псевдо элементы, которые сделают ваш текст странным. Две основные вещи, которые решают ваши варианты использования:
Для отображения значка внутри метки и для динамического c ширина псевдоэлементов:
HTML
<label class="btn-toggle-label" data-tg-off="UNSAVED " data-tg-on="SAVED  " for="cb5"></label>
CSS
.btn-toggle-flip {
+ .btn-toggle-label {
&:after,
&:before {
width: auto;
max-width: 100%;
font-family: "Font Awesome 5 Free";
}
}
.btn-toggle-label {
width: 200px;
}
Я пробовал этот обходной путь для обоих вариантов использования здесь, проверьте эту ручку:
https://codepen.io/mudassirzr/pen/XWmvrWp