Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Drupal Zen テーマ 7.x-6.x について

GOTO Hayato
December 16, 2016

Drupal Zen テーマ 7.x-6.x について

Drupal 7 の定番ベーステーマのひとつ Zen のバージョン 7.x-6.x についてポイントをかいつまんでご説明します。

GOTO Hayato

December 16, 2016
Tweet

More Decks by GOTO Hayato

Other Decks in Technology

Transcript

  1. Zen

  2. Zen 7.x-5.x • SASS: ͓ͳ͡ΈͷΞϨͰ͢ʢ Ruby ϕʔεʣ • Zen Grids:

    ʢޙड़͠·͢ʣ • Drush ʹΑΔαϒςʔϚͻͳ͕ͨੜ੒: $ drush en zen # Zen ͷμ΢ϯϩʔυ & ༗ޮԽ $ drush cc all # ΩϟογϡΫϦΞ $ drush zen my_subtheme # => Zen ͷαϒςʔϚͷੜ੒
  3. Zen 7.x-6.x ͜Μͳมߋ఺͕͋Γ·͢ • ϑΝΠϧ෼ׂ - SMACSS • ελΠϧΨΠυ -

    KSS • λεΫϥϯφʔ - Gulp • ϥΠϒϥϦ - SASS • Ϋϥε໋໊ϧʔϧ - MindBEMding
  4. Zen 7.x-6.x SASS ϑΝΠϧߏ੒ sass: - styles.scss - _init.scss -

    init/ - _colors.scss - _variables.scss - base/ - layouts/ - components/ - navigation/ - forms/
  5. Zen 7.x-6.x SASS ϑΝΠϧߏ੒ sass: - styles.scss (1) - _init.scss

    (2) - init/ (2) - _colors.scss (2) - _variables.scss (2) - base/ (3) - layouts/ (4) - components/ (5) - navigation/ (6) - forms/ (7)
  6. Zen 7.x-6.x SASS ϑΝΠϧߏ੒ _init.scss (2): init/ (2): • ॳظԽॲཧΛߦ͏

    • ֤छϥΠϒϥϦΛಡΈࠐΉ • Breakpoint / chroma / support-for / typey / zen-grids
  7. Zen 7.x-6.x SASS ϑΝΠϧߏ੒ • Breakpoint: ϒϨʔΫϙΠϯτʢϝσΟΞΫΤϦʣ • chroma: ৭

    • support-for: ର৅ϒϥ΢β • typey: ϑΥϯτ • zen-grids: ϨΠΞ΢τ
  8. ϥΠϒϥϦ: Breakpoint $pc: 960px; $tablet: 456px 794px; #foo { content:

    'No Media Queries'; // ஋Λ 1 ͭ౉͢ͱ min-width ʹͳΔ @include breakpoint($pc) { content: 'Basic Media Query'; } // ஋Λ 2 ͭ౉͢ͱ min-width ͱ max-width ʹͳΔ @include breakpoint($tablet) { content: 'Paired Media Query'; } }
  9. ϥΠϒϥϦ: Chroma ఆٛ: ϕʔεεΩʔϜ @import "chroma"; // σϑΥϧτͷΧϥʔεΩʔϜΛఆٛ $chroma: define-default-color-scheme('ϒϥϯυΧϥʔΛఆٛɻ');

    // σϑΥϧτΧϥʔεΩʔϜʹ৭Λ௥Ճ $chroma: add-colors(( black: #000, red: #c00, // "blue" ͷ஋Λ࣋ͭϋΠϥΠτΧϥʔΛఆٛ // ϝϞ: Ҿ༻ූͳ͠Ͱ blue ͕ࢦఆ͞Εͨ৔߹͸ม਺ͷࢀরͰ͸ͳ͘௨ৗͷ৭ͱղऍ͞ΕΔ primary: 'blue', ));
  10. ϥΠϒϥϦ: Chroma ఆٛ: ࢠεΩʔϜ // ʮϑΝϯΫγϣφϧʯͳΧϥʔεΩʔϜΛ࡞੒ // σϑΥϧτΧϥʔεΩʔϜΛܧঝ͢Δ $chroma: define-color-scheme('functional',

    '࣮ࡍʹར༻͢ΔΧϥʔεΩʔϜΛఆٛɻ'); // ϑΝϯΫγϣφϧΧϥʔεΩʔϜʹ৭Λ௥Ճ $chroma: add-colors('functional', ( // text ͷΧϥʔΛσϑΥϧτΧϥʔεΩʔϜͰఆٛ͞Εͨ black ͷ৭ʹ͢Δ text: 'black', // ଞͷ৭ͷ໊લ͸Ҿ༻ූ͋ΓͰ΋ͳ͠Ͱ΋ͲͪΒͰ΋ OK // ϝϞ: Ҿ༻ූΛ͚ͭͳ͚Ε͹৭ͷΩʔϫʔυจࣈྻͱͯ͠͸ೝࣝ͞Εͳ͍ heading: text, // ϦϯΫ৭ΛϓϥΠϚϦʔΧϥʔʹ͢Δ link: primary, // ϦϯΫϑΥʔΧεΧϥʔΛ lighten(link, 20%) Ͱઃఆ͢Δ link-focus: (link lighten 20%), ));
  11. ϥΠϒϥϦ: Chroma ఆٛ: ଙεΩʔϜ // "alternate" ΧϥʔεΩʔϜΛ࡞੒ // functional ͔Βܧঝ

    $chroma: define-color-scheme('alternate', '୅ସΧϥʔεΩʔϜΛఆٛɻ', $parent: 'functional'); // alternate ΧϥʔεΩʔϜʹ৭Λ௥Ճ $chroma: add-colors('alternate', ( primary: 'red', ));
  12. ϥΠϒϥϦ: Chroma ར༻: // color() ؔ਺͕ݺ͹Εͨͱ͖ʹͲͷΧϥʔΛσϑΥϧτͰ࢖༻͢Δ͔Ληοτ͢Δ $chroma-active-scheme: 'functional'; .example-ruleset {

    h1 { // #000 color: color(heading); } a { // #0e71b8 color: color(link); .alternate-color-section & { // #c00 ʢ਌ͷ৭ʹϑΥʔϧόοΫʣ color: color(alternate, link); } } }
  13. ϥΠϒϥϦ: support-for ઃఆ: $support-for: ( // ϚΠφε͸࠷৽ͷόʔδϣϯ͔Βͷόʔδϣϯ਺ chrome: -4, edge:

    25, firefox: 45, ie: 9, opera: -4, safari: -4, '*': -4, ) !default; $support-for: ( safari: 8, // null ͸αϙʔτͳ͠Λҙຯ͢Δ // ࢦఆ͞Ε͍ͯͳ͍ϒϥ΢βͷσϑΥϧτ஋ '*': null, );
  14. ϥΠϒϥϦ: support-for ར༻: @mixin my-sweet-sweet-mixin($cocoa: lots) { border-radius: 100%; //

    ͜͜͸ IE 10 αϙʔτͷͨΊʹಡΈࠐ·ΕΔ @if support-for(ie, 10) { // IE 8/9/10 Ͱ a ಺ͷ a ཁૉͷϘʔμʔΛ࡟আ͢Δ border: 0; } }
  15. ϥΠϒϥϦ: typey ઃఆ: ϑΥϯταΠζ $base-font-size: 15px; $font-size: ( xxl: 32px,

    xl: 24px, l: 18px, m: $base-font-size, s: 12px, xs: 10px );
  16. ϥΠϒϥϦ: typey ઃఆ: ϑΥϯτϑΝϛϦʔ $typefaces: ( sans-serif: ( font-family: $helvetica,

    letter-spacing: -.5px, ), serif: $garamond, monospace: ( font-family: $monaco, letter-spacing: .5px, weight: bold, case: uppercase, ) );
  17. ϥΠϒϥϦ: typey ઃఆ: ϑΥϯτपΓશൠ $typestyles: ( heading-1: ( font-size: xl,

    line-height: 1.25, weight: bold, case: uppercase ), heading-2: ( font-size: l, line-height: 1.25, weight: normal ) )
  18. ϥΠϒϥϦ: Zen Grids ઃఆ: import "zen-grids"; // ΧϥϜ਺ $zen-columns: 7;

    // ΨλʔαΠζ: ֤ΧϥϜͷ྆αΠυʹΨλʔͷ൒෼ͷۭന͕ೖΔ $zen-gutters: 10px;
  19. ϥΠϒϥϦ: Zen Grids ར༻: HTML <div class="container"> <article class="content"> Tha

    main content. We like semantic HTML ordering. </article> <aside class="aside1"> An aside. </aside> <aside class="aside2"> Another aside. </aside> <footer class="footer1"> A footer. </footer> <footer class="footer2"> Another footer. </footer> </div>
  20. ϥΠϒϥϦ: Zen Grids ར༻: SCSS .container { // άϦουίϯςφ @include

    zen-grid-container(); } .aside1 { // ෯͕ 2 ΧϥϜɺελʔτ͕ 1 ΧϥϜ໨ @include zen-grid-item(2, 1); } .content { // ෯͕ 4 ΧϥϜɺελʔτ͕ 3 ΧϥϜ໨ @include zen-grid-item(4, 3); } .aside2 { // ෯͕ 1 ΧϥϜɺελʔτ͕ 7 ΧϥϜ໨ @include zen-grid-item(1, 7); }
  21. ϥΠϒϥϦ: Zen Grids ར༻: SCSS .footer1 { // ৽͍͠ߦΛ࢝ΊΔ @include

    zen-new-row(); // ෯͕ 3 ΧϥϜɺελʔτ͕ 5 ΧϥϜ໨ // ඞͣ͠΋ࠨ͔Βॱʹ٧Ίͳͯ͘΋ OK @include zen-grid-item(3, 5); } .footer2 { // ෯͕ 4 ΧϥϜɺελʔτ͕ 1 ΧϥϜ໨ @include zen-grid-item(4, 1); }
  22. Zen 7.x-6.x SASS ϑΝΠϧߏ੒ base/ (3) : layouts/ (4) :

    components/ (5) : • SMACSS ෩ͷϨΠϠϦϯά navigation/ (6) : forms/ (7) : • ͜͜͸ SMACSS ෩͡Όͳ͍ • ϝχϡʔ΍ϑΥʔϜपΓ