• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Własny framework CSS w stylu Material Design

Object Storage Arubacloud
+1 głos
468 wizyt
pytanie zadane 6 maja 2017 w Nasze projekty przez jpacanowski VIP (101,940 p.)

Stworzyłem własny framework CSS w stylu Material Design. Tym razem bardziej przemyślany i według wielu sugestii, w SASS-ie.

Github:

https://github.com/jpacanowski/CSSFramework

screen:

https://cdn.pbrd.co/images/38gh7VvSW.png

Framework jest w pełni responsywny oraz oparty na Flexbox-ie.

Aby ostylować przycisk, piszemy:

<a href="#" class="btn"

jeśli chcemy aby był w kolorze indigo, dodajemy klasę z nazwą jednego z predefiniowanych przez Material Design kolorów:

<a href="#" class="btn indigo"

Tak samo z navbarem i innymi komponentami:

<div class="navbar"

(domyślnie niebieski)

<div class="navbar indigo"

(w kolorze indigo)

To dopiero pierwszy commit. Liczę na uwagi oraz sugestie.

komentarz 6 maja 2017 przez Pietrak Pasjonat (18,850 p.)
Dość długo siedzę i się zastanawiam: czy to już framework czy jeszcze gotowa strona? Opcje personalizacji tego "frameworka" są bardzo słabe. Właściwie dostajemy kilka klas, a następnie stylizowanie globalne po elementach.

Jedyne co możemy zmienić to kolor elementu, chodź nie powinno to być zrobione w ten sposób. Nazwa klasy powinna określać zawartość, a nie wygląd. Więc btn-cancel zamiast btn-red.

Kolory już sam zmienia użytkownik w custom.scss czy w podobnym pliku.
komentarz 6 maja 2017 przez jpacanowski VIP (101,940 p.)

a następnie stylizowanie globalne po elementach.

Pokaż przykład.

Nazwa klasy powinna określać zawartość, a nie wygląd. Więc btn-cancel zamiast btn-red.

To nie Bootstrap, ale framework ze stylem Material Design... Tak, dla 19 zdefiniowanych przez Material Design kolorów będę sobie wymyślał nazwy...
Spójrz sobie chociażby na framework MDBootstrap.com
https://cdn.pbrd.co/images/39RZOourn.png

Kolory już sam zmienia użytkownik w custom.scss czy w podobnym pliku.

Nie, nie powienien, bo to Material Design i się powinno korzystać tylko ze zdefiniowanych kolorów...

komentarz 7 maja 2017 przez Magicone Nałogowiec (45,100 p.)

Nie, nie powienien, bo to Material Design i się powinno korzystać tylko ze zdefiniowanych kolorów...

Nie, Google tylko proponuje używać kolorów z zdefiniowanej palety. Jeśli chodzi o kolory, to rzeczą większej wagi jest tutaj widoczność poszczególnych elementów z różnymi odcieniami. Było gdzieś nawet narzędzie, sprawdzające, czy podane odcienie pasują do siebie względem kontrastu.

Tak ogólnie, to sam projekt nie posiada jakiejkolwiek dokumentacji, do wyboru jest albo wybieranie komponentów na czuja albo grzebanie w kodzie.

Co do ścigania się jeśli chodzi o wagę bibliotek, to w aspekcie szerszym i dalekowzrocznym widać, że jest to głupota, bo prędzej czy później i tak zauważa się problem w rozszerzalności (ehh, flexible brzmi ładniej) tego podejścia (przykład: preact, który jest o niebo lepszy od zwykłego reacta... jeśli budujemy aplikację o funkcjonalności Hello World). Ale oczywiście wszystko zależy i nie mnie oceniać poszczególnych przypadków użycia.

Jeśli miałbym coś zmienić, to prawdopodobnie konwencję nazewnictwa komponentów. A tak właściwie to metodologię; mówię tutaj o BEM.

komentarz 7 maja 2017 przez Pietrak Pasjonat (18,850 p.)
Chociażby navbar. 6 zagnieżdżanień. I weź to później nadpisz.

Bootstrap w kwestii nazewnictwa i specyficzności selektorów nie jest dobrym przykładem, a tym bardziej jego modyfikacja.

1 odpowiedź

0 głosów
odpowiedź 7 maja 2017 przez ShiroUmizake Nałogowiec (46,300 p.)

Nie, Google tylko proponuje używać kolorów z zdefiniowanej palety. Jeśli chodzi o kolory, to rzeczą większej wagi jest tutaj widoczność poszczególnych elementów z różnymi odcieniami. Było gdzieś nawet narzędzie, sprawdzające, czy podane odcienie pasują do siebie względem kontrastu.

Ba nawet Compass ma taką funkcję :).

http://compass-style.org/reference/compass/utilities/color/contrast/

Przydałby się jakiś przykład online. Fajnie, jakbyś udostępnił github pages :).

To co mi się nie podoba, to lekki bałagan SCSS. Sensowniej jest podzielić na paczki z Compnentami (mniej błądzenia ) , -> header.scss,main.scss,footer.scss itd. 

Co do samego nazewnictwa.

Plik materialize.scss,

media (min-width:768px) {
    .container {
        width: 750px;
    }
}

@media (min-width:992px) {
    .container {
        width: 970px;
    }
}

@media (min-width:1200px) {
    .container {
        width: 1170px;
    }
}

Według mnie, to nie powinny być osobne klasy określonej specyfikacji. np: container--width1200. A nie próba nadpisywania klas CSS.

Trochę małą faktycznie customizacja. Przydałaby się jakaś fabryczka np: buttons-factory, a inny plik SCSS by ją implementował. Fajnie również, do typography można było zrzucić jakiś link url do web-fonts.

Spokojnie więcej mixinów można wymyśleć :).

Nie zauważyłem żadnego pliku do resetowania CSS. 

Jak dopiszesz dokumentacje jak tego używać, przetestuję w kolejnym projekcie :).

 

komentarz 7 maja 2017 przez jpacanowski VIP (101,940 p.)

Nie zauważyłem żadnego pliku do resetowania CSS.

Materialize.css przecież używam...

Według mnie, to nie powinny być osobne klasy określonej specyfikacji. np: container--width1200. A nie próba nadpisywania klas CSS.

Nie rozumiem tego.

Dzięki za uwagi.

komentarz 8 maja 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
Ok faktycznie nie zajrzałem do tego pliku.

Już ci tłumacze, jeżeli masz klasę container, która powiedzmy ma określoną jakąś wartość powiedzmy : width, to media-queries będzie działało bodajże do pierwszego wywołowania container, a następnie już nie, gdyż nie dałeś mu znać, że ma nadpisać wartości (!important), wadą tego rozwiązania jest, ze musisz dać mu znać, że ma nadpisywać. Druga, jeżeli usuniemy choć z jednej klasy important, to będzie on szukał pierwszej tą, która ma important i z niej brał wartości. A to bywa nieprzyjemne do dkręcania.

Dlatego tworzy się wyspecjalizowane klasy jak np: container--phone320, te "--" oznaczają, że konkretna specyfikacja(wartość) dla danego elementu.

Podobne pytania

+6 głosów
9 odpowiedzi 1,148 wizyt
pytanie zadane 11 lipca 2015 w Nasze projekty przez DL TD Nałogowiec (36,710 p.)
0 głosów
0 odpowiedzi 137 wizyt
pytanie zadane 18 września 2018 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 198 wizyt
pytanie zadane 18 maja 2018 w HTML i CSS przez Krzysio4224 Obywatel (1,690 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...