Drupal6 Css Theming

36
1 Lichtgewicht CSS design voor Drupal 6 Roy Scholten Drupaljam Enschede, 20 maart 2009

description

The basics of creating a new Drupal 6 theme based on the new Stark theme. Presented at Drupaljam 4, Enschede. March 2009. Dutch.

Transcript of Drupal6 Css Theming

Page 1: Drupal6 Css Theming

1

Lichtgewicht CSS design voor Drupal 6Roy ScholtenDrupaljam Enschede, 20 maart 2009

Page 2: Drupal6 Css Theming

2

Question:

“How to convert an OSWD design into a Drupal theme. In 45 minutes?”

Wie heeft deze vraag gesteld?

Page 3: Drupal6 Css Theming

3

Answer:

You don't!

OSWD.org is download site voor open source webdesigns

Weinig bruikbaars, vrij magertjes allemaal.

Laatste toevoeging is van 2007

Page 4: Drupal6 Css Theming

4

Neem liever contact op met…

Roy Scholten

Interaction design, Drupal UX, illustratie & other fine arts…

www.yoroy.com

Beetje zelf-promo natuurlijk…

[email protected]

Page 5: Drupal6 Css Theming

5

rename to:

Lichtgewicht CSS design voor Drupal 6

Los daarvan, wel interessant om proces voor e!ciënt en 'from scratch' stylen van Drupal te bekijken

Doel deze presentatie:

Een snelle en simpele aanpak voor “CSS only” theming.

Het is makkelijker dan je denkt…

Page 6: Drupal6 Css Theming

6

pushbutton, chameleon en bluemarine

StarkEen nieuw, minimaal D7 core theme

D6 versie: http://drupal.org/project/stark

Status update Drupal 7:

De meeste Core themes zijn verwijderd

Op dit moment 1 nieuw theme toegevoegd: Stark

Doel van Stark:

Drupal's standaard HTML en CSS output inzichtelijk maken.

Drempel voor nieuwe designers verlagen

Backport voor D6 verkrijgbaar.

Page 7: Drupal6 Css Theming

7

Stark:

Core HTML en CSSmet een klein beetje layout

Page 8: Drupal6 Css Theming

8

Layout bestaat uit het plaatsen van de default core regions

Regions definiëren de 5 basiskaders binnen je pagina.

Page 9: Drupal6 Css Theming

9

Stark naked = spier naakt, vandaar.

Page 10: Drupal6 Css Theming

10

Goed dan, bij wijze van voorbeeld…

http://www.oswd.org/design/preview/id/2434

Vooruit dan maar…

Meeste themes op OSWD hebben maar 1 sidebar.

De themes zijn nogal basic.

Aanpak voor Drupal dus focussen op zo generiek mogelijk stylen zodat je zoveel mogelijk use cases afdekt.

Page 11: Drupal6 Css Theming

11

In de verpakking:

1 HTML pagina1 CSS bestand1 Logo8 Achtergrondplaatjes

Page 12: Drupal6 Css Theming

12

Een minimaal D6 theme:

.info bestand

- logo

- screenshot (150x90px)

Een D6 theme bestaat uit een map met de naam van je theme

Daarin in ieder geval een .info bestand

Logo en screenshot optioneel maar oogt wel zo prettig in de themes lijst van Drupal admin.

Page 13: Drupal6 Css Theming

13

themenaam.info bevat minimaal:

name = Geen

description = Stijl

core = 6.x

engine = phptemplate

themenaam.info:

Core = versie van Drupal. Zes dus

Vraag: wie weet er nog 2 andere theming engines te noemen?

Vergeet ze direct weer, phptemplate wordt in ca. 97.547% van de gevallen gebruikt.

Page 14: Drupal6 Css Theming

14

/admin/build/themes

plaats theme-map in:

drupal/sites/all/themes

Zonder logo en screenshot komt het dan zo in de themes lijst terecht.

Een theme met alleen een .info bestand heeft dus geen layout en de output ziet er dus niet uit, alles onder elkaar.

Page 15: Drupal6 Css Theming

15

hoera voor sub theming

name = Geen

description = Stijl

core = 6.x

engine = phptemplate

base theme = stark

In plaats van zelf styles te schrijven om de regions te positioneren, waarom niet gewoon hergebruiken?

Override, don't duplicate.

Maak je theme dus een sub theme van Stark.

(Voor D6 misschien nog niet geheel logisch omdat Stark daar nog niet in core zit, maar dit is wel de best practise)

Page 16: Drupal6 Css Theming

16

<demo>

Live demos gaan natuurlijk altijd fout. Ik zat het verkeerde .info file te bewerken!

Page 17: Drupal6 Css Theming

17

Eigen CSS bestand mee laten doen

base theme = stark

stylesheets[all][] = geen.css

Nou hebben we nog een plek nodig om alle nieuwe style rules in te zetten.

Maak themenaam.css aan en plaats in je map

Breng Drupal hiervan op de hoogte door het CSS bestand te noemen in je .info bestand.

Page 18: Drupal6 Css Theming

18

Dit is de index.html uit de download.

Neem even de tijd om de grote blokken te herkennen, wat komt in welke region etc.

Page 19: Drupal6 Css Theming

19

Dit is de onderliggende structuur.

Stark's layout.css houdt rekening met zowel 1 als 2 sidebars, dus die gooien we er op voorhand nog niet uit.

Page 20: Drupal6 Css Theming

20

www.getfirebug.com

Aan de slag.

Firebug is onmisbaar bij dit soort werk.

Extensie voor Firefox die de HTML structuur en CSS van een pagina inzichtelijk maakt.

Page 21: Drupal6 Css Theming

21

Links het doel,

Rechts ons uitgangspunt, een Stark sub theme

Page 22: Drupal6 Css Theming

22

Gebruik Firebug om in “Plain” de elementen te vinden waar de meeste styling aanhangt.

Zoek in Stark output de corresponderende HTML en CSS IDs en classes te vinden.

Werk van boven naar beneden (header tot footer)En van buiten naar binnen (grote brokken eerst,

daarna verfijnen.

Page 23: Drupal6 Css Theming

23

Nogmaals het OSWD design

Page 24: Drupal6 Css Theming

24

45 minuten later…

Page 25: Drupal6 Css Theming

25

De basis staat

Page 26: Drupal6 Css Theming

26

Layout van de OSWD download weer:

Zie hoe de groene tekst over de volle breedte loopt.

Page 27: Drupal6 Css Theming

27

En in het Drupal theme (nog) niet

Dit is de “mission” tekst in Drupal en deze bevindt zich in de content region.

Page 28: Drupal6 Css Theming

28

Dit is de onderliggende structuur.

Stark's layout.css houdt rekening met zowel 1 als 2 sidebars, dus die gooien we er op voorhand nog niet uit.

Page 29: Drupal6 Css Theming

29

Tot zover de CSS only…

page.tpl.phpdrupal/modules/system/page.tpl.php

Hier loop je dus tegen de muur van een region aan.

De mission wordt standaard in de content region weergegeven.

Dat kunnen we veranderen door de template voor de pagina te veranderen.

Beetje PHP maar doet bijna geen pijn, is nog steeds een goed leesbare html pagina.

Page 30: Drupal6 Css Theming

30

Kopie ervan in je theme map

Kopieer page.tpl.php naar je eigen theme map en verplaats het stukje dat de $mission print naar de header region.

Je zult zien dat dat ook niet helemaal werkt omdat het dan boven de navigatie uitkomt.

Je zou het tusssen de header en content regions kunnen plaatsen of een nieuwe region definieeren.

Page 31: Drupal6 Css Theming

31

Dus, maak een mapje met:

- .info bestand (definieer een base theme)

- themenaam.css & gaan!

Page 32: Drupal6 Css Theming

32

En niet meer naar OSWD hè!

Page 33: Drupal6 Css Theming

33

Dank voor uw aandacht

Vragen?

Page 34: Drupal6 Css Theming

34

Oh ja, Zen.

drupal.org/project/zen

Aanrader voor als je veel Drupal onderdelen moet stylen.

Veel documentatie, alles in 1 pakket, ideale inleiding in alle vormen van theming

Overkill voor themes die alleen maar een beperkte front end hoeven aan te kleden.

Page 35: Drupal6 Css Theming

35

De groeten!

yoroy | roy scholten | yoroy.com

Page 36: Drupal6 Css Theming

36