B u i l d i n g a D r u p a l 8 T h e m e
w i t h n e w - fa n g l e d a w e s o m e n e s s
w i t h n e w - fa n g l e d a w e s o m e n e s s M a rc D r u m - - PowerPoint PPT Presentation
B u i l d i n g a D r u p a l 8 T h e m e w i t h n e w - fa n g l e d a w e s o m e n e s s M a rc D r u m m o n d ( & I z z y ) m d r u m m o n d @ M a rc D r u m m o n d I R C & d r u p a l . o rg m a rc d r u m m o n d .
B u i l d i n g a D r u p a l 8 T h e m e
w i t h n e w - fa n g l e d a w e s o m e n e s s
@ M a rc D r u m m o n d
m d r u m m o n d
I R C & d r u p a l . o rg
m a rc d r u m m o n d . c o m
P a c k t P u b l i s h i n g
I’m writing a book! Drupal 8 Responsive Web Design
P h o t o b y J a l a l H a m e e d B h a t t i , F l i c k rT h e re a re n e w t h i n g s i n D r u p a l 8 ( a n d f ro n t - e n d i n g e n e r a l )
P h o t o b y M i c h e l l e Tr i b e , F l i c k r– M e . ( A n d e v e r y o n e e l s e )
“I get totally overwhelmed by all the new things. I feel like I know nothing.”
P h o t o b y A n d ré s Þ ó r, F l i c k rA re a n y o f t h e s e t h i n g s u n f a m i l i a r ?
c o m p o n e n t s
K i t
D e s k t o p
P ro t o t y p e s
I t ’s o k .
I s t h a t yo u r f i n a l a n s w e r ?
Yo u r t h e m e
– D r u p a l t h e m e f i l e s
“All your YML and PHP belongs to us.”
T h e m e i n f o r m a t i o n a n d s e t t i n g s
P h o t o b y C h r i s t i a n O s t ro s k y, F l i c k rT h e m e i n f o r m a t i o n a n d s e t t i n g s
n a m e : ' A t o m i c ' t y p e : t h e m e e n g i n e : t w i g d e s c r i p t i o n : ' B a s e t h e m e b a s e d o n a t o m i c d e s i g n p r i n c i p l e s . ' c o re : 8 . x s t y l e s h e e t s : a l l :
s e t t i n g s : a t o m i c _ t y p e k i t _ i d : ' 0 '
t h e m e - s e t t i n g s . p h p
T h e m e s e t t i n g s
P h o t o b y C h a r l e s R o ff e y, F l i c k rT h e m e s e t t i n g s
< ? p h p / * * * I m p l e m e n t s h o o k _ f o r m _ s y s t e m _ t h e m e _ s e t t i n g s _ a l t e r ( ) f u n c t i o n . * * @ p a r a m $ f o r m * N e s t e d a r r a y o f f o r m e l e m e n t s t h a t c o m p r i s e t h e f o r m . * @ p a r a m $ f o r m _ s t a t e * A k e y e d a r r a y c o n t a i n i n g t h e c u r re n t s t a t e o f t h e f o r m . * / f u n c t i o n a t o m i c _ f o r m _ s y s t e m _ t h e m e _ s e t t i n g s _ a l t e r ( & $ f o r m , $ f o r m _ s t a t e ) {
/ / M i s c e l a n e o u s / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
' # t y p e ' = > ' f i e l d s e t ' , ' # t i t l e ' = > t ( ' Ty p o g r a p h y ' ) , ' # d e s c r i p t i o n ' = > t ( ' Ty p o g r a p h y s e t t i n g s f o r y o u r t h e m e . ' ) , ' # c o l l a p s i b l e ' = > FA L S E , ' # c o l l a p s e d ' = > FA L S E ) ;
' # t y p e ' = > ' t e x t f i e l d ' , ' # t i t l e ' = > t ( ' Ty p e k i t K i t I D ' ) , ' # d e f a u l t _ v a l u e ' = > t h e m e _ g e t _ s e t t i n g ( ' a t o m i c _ t y p e k i t _ i d ' ) , ' # s i z e ' = > 7 , ' # m a x l e n g t h ' = > 7 , ' # d e s c r i p t i o n ' = > t ( ' I f y o u a re u s i n g < a h re f = " ! l i n k " t a rg e t = " _ b l a n k " > Ty p e k i t < / a > t o s e r v e w e b f o n t s , p u t y o u r Ty p e k i t K i t I D h e re ' , a r r a y ( ' ! l i n k ' = > ' h t t p s : / / t y p e k i t . c o m / ' ) ) , ) ;
S e t t i n g s f i l e s
P h o t o b y C h r i s t i a n O s t ro s k y, F l i c k rS e t t i n g s f i l e s
# @ t o d o T h e re i s n o U I y e t f o r c o n f i g u r i n g t h i s , b u t t h e s e t t i n g i s i n c l u d e d # h e re , b e c a u s e C o n f i g I m p o r t U I Te s t re q u i re s a n o n - e m p t y b a r t i k . s e t t i n g s . y m l # f i l e : h t t p s : / / d r u p a l . o rg / n o d e / 2 2 3 5 9 0 1 . s h o r t c u t _ m o d u l e _ l i n k : f a l s e
S e t t i n g s c h e m a f i l e s
P h o t o b y P e t e r L e e , F l i c k rS e t t i n g s c h e m a f i l e s
# S c h e m a f o r t h e c o n f i g u r a t i o n f i l e s o f t h e B a r t i k t h e m e .
t y p e : t h e m e _ s e t t i n g s l a b e l : ' B a r t i k s e t t i n g s ' m a p p i n g : # @ t o d o M o d u l e - s p e c i f i c s e t t i n g s s h o u l d b e d e f i n e d b y t h e m o d u l e : # h t t p s : / / d r u p a l . o rg / n o d e / 2 2 3 5 9 0 1 . s h o r t c u t _ m o d u l e _ l i n k : t y p e : b o o l e a n l a b e l : ' S h o r t c u t m o d u l e l i n k '
T h e m e c o n f i g d e f a u l t s
P h o t o b y J u s t i n d e l a O r n e l l a s , F l i c k rT h e m e c o n f i g d e f a u l t s
i d : t h e m e . b a r t i k . b a r t i k n a m e : b a r t i k l a b e l : B a r t i k b re a k p o i n t _ i d s :
s o u rc e : b a r t i k s o u rc e Ty p e : t h e m e s t a t u s : t r u e l a n g c o d e : e n
H o w d o D r u p a l 8 t h e m e s w o r k w i t h … ?
L e t ’s l o o k a t …
Tu r n i n g d a t a i n t o m a r k u p
P h o t o b y A d r i a n , F l i c k rT H E M E . t h e m e
T h e m e f u n c t i o n s & p re p ro c e s s
P h o t o b y S u n o v a S u r f b o a rd s , F l i c k rT h e m e f u n c t i o n s & p re p ro c e s s
< ? p h p
* I m p l e m e n t s h o o k _ p a g e _ a l t e r ( ) * / / / f u n c t i o n a t o m i c _ p a g e _ a l t e r ( & p a g e ) {
/ / A d d i n Ty p e K i t C o d e . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / i f ( t h e m e _ g e t _ s e t t i n g ( ' a t o m i c _ t y p e k i t _ i d ' ) ) { $ k i t _ i d = t h e m e _ g e t _ s e t t i n g ( ' a t o m i c _ t y p e k i t _ i d ' ) ; $ k i t _ u r l = " / / u s e . t y p e k i t . n e t / " . $ k i t _ i d . " . j s " ; $ k i t _ t r y _ c a t c h = " t r y { Ty p e k i t . l o a d ( ) ; } c a t c h ( e ) { } " ; / / $ k i t = a r r a y ( ) ; $ p a g e [ ' # a t t a c h e d ' ] [ ' j s ' ] [ ] = a r r a y ( ' t y p e ' = > ' e x t e r n a l ' , ' d a t a ' = > $ k i t _ u r l , ' e v e r y _ p a g e ' = > T R U E ) ; $ p a g e [ ' # a t t a c h e d ' ] [ ' j s ' ] [ ] = a r r a y ( ' t y p e ' = > ' i n l i n e ' , ' d a t a ' = > $ k i t _ t r y _ c a t c h , ' e v e r y _ p a g e ' = > T R U E ) ; / / d r u p a l _ re n d e r ( $ k i t ) ; } }
Tw i g : Te m p l a t e s t h a t m a k e s e n s e
P h o t o b y S c o t t M o o re , F l i c k rTw i g : Te m p l a t e s t h a t m a k e s e n s e
< ! D O C T Y P E h t m l > < h t m l { { h t m l _ a t t r i b u t e s } } > < h e a d > { { p a g e . h e a d } } < t i t l e > { { h e a d _ t i t l e } } < / t i t l e > { { p a g e . s t y l e s } } { { p a g e . s c r i p t s } } < / h e a d > < b o d y { { a t t r i b u t e s } } > < a h re f = " # m a i n - c o n t e n t " c l a s s = " v i s u a l l y - h i d d e n f o c u s a b l e s k i p - l i n k " > { { ' S k i p t o m a i n c o n t e n t ' | t } } < / a > { { p a g e _ t o p } } { { p a g e . c o n t e n t } } { { p a g e _ b o t t o m } } { { p a g e . s c r i p t s ( ' f o o t e r ' ) } } < / b o d y > < / h t m l >
P s s t …
M a n a g i n g s t y l e s h e e t s a n d s c r i p t s
P h o t o b y R i c y m a r P h o t o g r a p h y, F l i c k rT H E M E . l i b r a r i e s . y m l
M a n a g i n g d e p e n d e n c i e s f o r C S S a n d J S
P h o t o b y S a m a n t h a M a r x , F l i c k rM a n a g i n g d e p e n d e n c i e s f o r C S S a n d J S
b a s e : v e r s i o n : V E R S I O N c s s : t h e m e : c s s / l a y o u t . c s s : { } c s s / s t y l e . c s s : { } c s s / c o l o r s . c s s : { } c s s / p r i n t . c s s : { m e d i a : p r i n t }
v e r s i o n : V E R S I O N c s s : t h e m e : c s s / m a i n t e n a n c e - p a g e . c s s : { } d e p e n d e n c i e s :
To o l f o r m a n a g i n g C S S a n d J S
P h o t o b y M o r k i R o , F l i c k rN o t j u s t j Q u e r y a n y m o re
S a s s , C o m p a s s a n d m o re
P h o t o b y I s m a e l C e l i s , F l i c k rC o m p a s s c o n f i g u r a t i o n
P h o t o b y S u n o v a S u r f b o a rd s , F l i c k rC o m p a s s c o n f i g u r a t i o n
# R e q u i re a n y a d d i t i o n a l c o m p a s s p l u g i n s h e re . re q u i re ' c o m p a s s / i m p o r t - o n c e / a c t i v a t e ' re q u i re ' c o m p a s s - n o r m a l i z e ' re q u i re ' t o o l k i t ' re q u i re ' b re a k p o i n t ' re q u i re ' s u s y ' re q u i re ' m o d u l a r- s c a l e ' re q u i re ' c o l o r- s c h e m e r ' re q u i re ' s a s s y - b u t t o n s '
s a v e d = e n v i ro n m e n t i f ( e n v i ro n m e n t . n i l ? ) e n v i ro n m e n t = : d e v e l o p m e n t e l s e e n v i ro n m e n t = s a v e d e n d
f i re s a s s = ( e n v i ro n m e n t = = : d e v e l o p m e n t ) ? t r u e : f a l s e
c s s _ d i r = " c s s " s a s s _ d i r = " s a s s " i m a g e s _ d i r = " i m a g e s " j a v a s c r i p t s _ d i r = " j s "
re l a t i v e _ a s s e t s = t r u e
l i n e _ c o m m e n t s = ( e n v i ro n m e n t = = : d e v e l o p m e n t ) ? t r u e : f a l s e s a s s _ o p t i o n s = ( e n v i ro n m e n t = = : d e v e l o p m e n t & & f i re s a s s = = t r u e ) ? { : d e b u g _ i n f o = > t r u e } : { }
B u t w a i t , t h e re ’s m o re !
P h o t o b y O Z i n O H , F l i c k rTo o l s y o u p ro b a b l y w a n t t o u s e
( I t ’s n o t a l l t h a t s c a r y. R e a l l y. )
M a n a g i n g d e p e n d e n c i e s a n d p a c k a g e s
P h o t o b y M a r i n , F l i c k rS e t t i n g u p a l o c a l s e r v e r, m a n a g e l a n g u a g e s , e t c .
P h o t o b y G re y l o c h , F l i c k rS c a ff o l d i n g t o o l t o b u i l d f i l e s f o r t h e m e s o r m o d u l e s
P h o t o b y To m F r a n c i s , F l i c k rM u l t i p l e c o m m a n d l i n e t a s k s w i t h o n e c o m m a n d
P h o t o b y K y l e S t e e d , F l i c k rW h a t ’s a t a s k r u n n e r w i t h o u t t a s k s ?
P h o t o b y D a n C o u l t e r, F l i c k rB u i l d i n g i n t h e b ro w s e r w i t h c o m p o n e n t - b a s e d d e s i g n
P i x e l p e r f e c t i o n i s t h e e n e m y o f t h e g o o d .
P h o t o b y E n i g m a B a d g e r, F l i c k rTo o l s f o r m a k i n g s u re y o u r s i t e w o r k s b e f o re d e p l o y i n g c h a n g e s
P h o t o b y P a s c a l , F l i c k rA u t o m a t e d re g re s s i o n t e s t i n g
A re y o u i n s a n e ? A m I i n s a n e ? A re w e i n s a n e ?
P h o t o b y R o b e r t M c G o l d r i c k , F l i c k rp r i o r t o d e p l o y m e n t
I ’ m s c a re d . H o l d m e .
Yo u d o n ’t h a v e t o d o a l l o f t h i s .
@ M a rc D r u m m o n d
m d r u m m o n d
I R C & d r u p a l . o rg
m a rc d r u m m o n d . c o m