ใช้งาน Bulma ใน Rails

ถ้าจะกล่าวถึง CSS Framework ที่เป็นที่นิยมใช้กันนั้นก็มีอยู่ด้วยกันหลากหลาย สำหรับในบทความนี้จะกล่าวถึง Bulma ซึ่งเป็น CSS Framework ที่ใช้งานได้ง่าย ไม่ซับซ้อนและแลดูสวยงามเมื่อแสดงผลอยู่บนเว็บบราวเซอร์ โดยในวันนี้เราจะนำ Bulma มาใช้งานร่วมกันกับ Rails

ความต้องการพื้นฐาน


เริ่มต้นอย่างรวดเร็ว

ก่อนอื่นเรามาสร้างโปรเจค Rails กันก่อน

$ rails new myapp

สำหรับการติดตั้ง Bulma ให้กับโปรเจคสามารถทำได้ 2 วิธี คือ

ในบทความนี้จะเลือกใช้วิธีที่ 2 นั้นคือติดตั้งโดยใช้ Gem ซึ่งทำได้ง่ายกว่า และพร้อมใช้กับ Rails ในทันที ด้วยวิธีการเพิ่มคำสั่งติดตั้งเข้าไปในไฟล์ Gemfile ที่อยู่ภายในโปรเจค สำหรับ Gem ที่ใช้งานมีชื่อว่า bulma-rails

gem "bulma-rails", "~> 0.8.0"

รันคำสั่งเพื่อติดตั้ง

$ bundle install

จากนั้นนำเข้าสไตล์ของ Bulma เข้าไปยัง application.scss

applicaiton.scss ตำแหน่งที่ตั้งของไฟล์ application.scss

!!! หมายเหตุ: ในกรณีที่ extension ของ application เป็น css อยู่ให้ทำการเปลี่ยน extension ให้เป็น scss ด้วยการ rename

@import "bulma";

มาถึงตรงนี้โปรเจคของเราก็พร้อมที่จะใช้ Bulma ดังนั้นเรามาลองสร้างหน้าเว็บที่ใช้งาน Bulma กันหน่อย โดยเริ่มสร้าง controller ชื่อ Home และ action ชื่อ index

$ rails generate controller Home index

ทดลองใส่โค้ดแสดงผลง่ายๆ โดยใช้ Bulma ใน index.html

<section class="section">
  <div class="container">
    <h1 class="title">
      Hello World
    </h1>
    <p class="subtitle">
      My first website with <strong>Bulma</strong>!
    </p>
  </div>
</section>

ตัวอย่างโค้ดสามารถเข้าไปดูได้ที่นี่ รันเว็บเซอร์เวอร์และเข้าไปยังหน้าเว็บผ่านเว็บบราวเซอร์

$ rails server

index.html Bulma with Rails


พื้นฐานเกี่ยวกับ Bulma

จะว่าไป Bulma ก็คือ CSS Framework ที่ได้รับการออกแบบมาให้ใช้ความสามารถของ Flexbox เป็นหลักในการจัด layout ของเว็บไซด์ ซึ่งทำให้เราสามารถที่จะจัดหน้าตาของเว็บไซด์ได้ง่าย และสะดวกสบายมากยิ่งขึ้น แทนที่จะไปใช้ table เหมือนในสมัยก่อน นอกจากนี้ Bulma จะมีเพียงแค่ CSS เท่านั้น ทำให้มีขนาดเล็กกว่า CSS Framework ตัวอื่นๆ เหมาะสมกับการนำไปใช้ร่วมกับ javascript ใดๆ ก็ได้ไม่ว่าจะเป็น vanilla javascript หรือ jquery ที่นี้ลองมาดูความสามารถของ Bulma กัน

การรองรับการแสดงผล

สำหรับ Bulma นั้นได้รับการออกแบบโดยคำนึงถึงอุปกรณ์มือถือเป็นอย่างแรก ทำให้การนำไปใช้แสดงผลบนอุปกรณ์มือถือนั้นสามารถทำได้ดีและสวยงาม โดย Bulma แบ่งกลุ่มการแสดงผลออกเป็น 5 กลุ่มด้วยกันคือ

Columns

กล่าวคือเมื่อมีการนำคอมโพเนนต์มาจัดเรียง Flexbox จะจัดการแสดงแบบอยุ่ในรูปของตาราง (grid) ซึ่งใช้ระบบ 12 คอลัมน์ต่อ 1 แถว

Grid System Grid System with 12 columns

Columns Columns Example

Layout

Container Container Example

Level Level Example

Hero Hero Example

Footer Footer Example

Tile Tile Example

Elements

สำหรับในบทความนี้ก็ขอนำแนะนำองค์ประกอบพื้นฐานไว้คร่าวๆ แต่เพียงเท่านี้ หากอยากศึกษาเพิ่มเติมถึงองค์ประกอบอื่นๆ เช่น ตัวช่วย (Helpers) คอมโพเนนต์ (Components) หรือการปรับแต่งสไตล์ (Customization) สามารถดูรายละเอียดได้จากเว็บไซด์ Bulma

References