Font, kích thước, màu sắc

I am a developer, I write blogs occasionally. I hope you will find something new when reading my blogs.
Search for a command to run...

I am a developer, I write blogs occasionally. I hope you will find something new when reading my blogs.
No comments yet. Be the first to comment.
Trong series này mình sẽ chia sẻ về các cách khác nhau để làm giao diện website
Có nhiều cách để làm layout, tuy nhiên chúng ta sẽ chú trọng vào học layout thông qua Flexbox. Tham khảo qua CSS display ở đây Một số các loại display phổ biến: inline: mặc định của <span> và <img>, các tag inline sẽ xếp trên cùng 1 hàng theo mặc đị...
Login xong rồi thì làm gì? Tất nhiên là các thao tác xử lý dữ liệu. thường viết tắt là CRUD (Create Read Update Delete). Chúng ta sẽ làm tất cả trên Wordpress, tiếp nối 2 bài viết về login trước. CRUD với việc Login bằng Ultimate User Chúng ta cần ti...

Ở bài trước chúng ta đã có thể login bằng cách cài thêm plugin cho Wordpress. Về bản chất, đó là việc dùng Wordpress làm server xử lý thông tin đăng nhập. Wordpress vừa hiển thị giao diện, vừa xử lý thông tin đằng sau. Ở bài này chúng ta sẽ học cách ...

Tiếp nối với bài về Header thì chúng ta sẽ bàn đến nút Login / Signup có trên Header. Thường thì các flow phổ biến sẽ là: click nút Login / Signup sẽ dẫn sang trang Login, ở đó sẽ có nút dẫn sang trang Signup nếu chưa có tài khoản, hoặc có design sẽ...
Từ bài này trở đi chúng ta sẽ bắt đầu thực hành các kiến thức về UI Builder, Web component và React để làm từng thành phần của web. Đầu tiên là Header, hay còn được gọi là Navigation bar, Navigation menu,.... Mục đích của phần giao diện này là giới t...

Fonts, Sizes và Colors Vì chúng ta sẽ làm việc trực tiếp trên Wordpress + Elemetor nên bước này cả 3 sẽ giống nhau: Vào Site settings và cài đặt Global Colors để dùng cho Elementor Tạo global style trong Custom CSS để dùng CSS variable cho Web Comp...

Font, kích thước và màu sắc là những cái cơ bản của việc làm giao diện (Click vào link để đọc qua để có thể nắm được). "Cơ bản" ở đây nghĩa là nó đc sử dụng rất nhiều và ở mọi nơi. Do đó, để setup và dùng nó 1 cách có hệ thống không đơn giản. Chủ yếu chúng ta cần xử lý 2 vấn đề:
Tái sử dụng/đồng nhất: Những phần giao diện giống nhau, có vai trò như nhau, thì sẽ có cùng 1 kiểu style. Ví dụ như tiêu đề ở page 1 và page 2 nếu không có gì đặc biệt, thì sẽ phải có cùng loại font, cùng màu chữ, cùng kích thước. Thông thường 1 website sẽ có 1 bộ nhận diện / design system, và bộ nhận diện này chỉ xoay quanh 1-2 font chữ và 4-5 màu sắc. do đó việc màu lặp đi lặp lại ở các trang / các phần giao diện sẽ là điều phổ biến.
Có khả năng thay đổi hàng loạt: Vì tính tái sử dụng, nên nếu có những thay đổi cho bộ nhận diện, thì phải thay đổi tất cả, toàn bộ các phần cũ. Việc này rất hay xảy ra ở giai đoạn đầu sản phẩm. Khi khách hàng muốn thử qua nhiều thay đổi để tìm cái hợp lý nhất. Do đó, việc code có hệ thống sẽ giúp giải quyết vấn đề này ngay từ đầu.
Bạn cần học cách sử dụng css variable ngay từ đầu. Cơ bản là bạn tự đặt tên và tự đặt giá trị và dùng biến tự đặt đó ở nhiều nơi

Thay đổi giá trị CSS Variable thì có thể dùng JS để thay đổi ở cấp cao nhất
var r = document.querySelector(':root');
r.style.setProperty('--main-color', 'lightblue');
Hoặc thay đổi bằng cách thêm CSS vào cấp thấp hơn. Và giá trị này sẽ ghi đè nhưng chỉ tác dụng ở trong các element có CSS selector đó.

CSS Variables có thể dùng chung ở HTML, React và UI Builder. Với UI Builder ngoài việc dùng Custom CSS để khai báo/ghi đè CSS Variable thì có thể sử dụng phần thiết lập Global của nó

Để web bạn sử dụng các font chữ mới lạ theo yêu cầu của design, thì phải cài đặt font rồi mới có thể sử dụng, việc cài đặt chia làm 2 hướng
Font đó có thuộc Google Fonts không? Nếu có thì lên Google Fonts chọn và cài đặt, có hướng dẫn trên đó chỉ việc copy paste về.

UI Builder Elementor cũng hỗ trợ sẵn font của Google, chỉ việc search và chọn

Font đó không thuộc Google Fonts. Bạn phải có file font thì mới có thể tự cài loại font này. Khi đã có file font, thì lên trang transfronter để convert font thành định dạng tốt nhất cho web

Ngoài việc convert font ra, nó sẽ tự gen cho bạn code CSS để bạn copy vào dự án của mình.
Lưu ý: Để test font nên dùng thêm 1 thiết bị khác để test. Vì nhiều trường hợp font bạn cài sẵn trong máy cá nhân của bạn nên chỉ bạn mới nhìn thấy font đó còn người khác sẽ lỗi.
Màu trong CSS có thể khai báo theo tên màu, mã HEX, mã RGB, mã HSL.
Khai báo theo tên màu khá hạn chế vì số lượng ít, thường chủ yếu dùng "black", "white", "red".
Khai báo theo mã HEX và RGB là phổ biến nhất. Có thể convert từ mã HEX sang RGB và ngược lại.
Khi muốn thêm độ mờ/khả năng nhìn xuyên qua (Opacity), thì với RGB có thể thêm A vào thành RGBA. Với HEX có thể thêm 2 số vào cuối từ và trở thành mã HEX 8 số. Tham khảo các giá trị ở đây để điều chỉnh opacity từ 0% đến 100%
Đọc bài viết trong link gửi ở đầu bài về kích thước để hiểu thêm về kích thước, có kích thước tuyệt đối và tương đối. Kích thước loại px là phổ biến nhất tuy nhiên không nên dùng mà thay vào đó sử dụng rem.

Mặc định 1rem tương ứng với 16px. Nếu design của bạn sử dụng kích thước px theo bội của 4 hoặc 8 (16 20 24 28 32...) thì có thể không cần thay đổi rem mặc định.
Còn trường hợp design cảu bạn sử dụng kích thước không theo quy tắc gì cả, hoặc dùng theo bội của 5 (15 20 25 30,...) thì bạn nên đổi lại giá trị 1 rem tương ứng với 10px để chia không bị lẻ.

tại sao lại dùng rem? vì dùng rem bạn có thể tăng/giảm kích thước toàn bộ font chữ chỉ bằng 1 dòng CSS. Cái này hữu dụng trong trường hợp làm giao diện cho nhiều loại thiết bị khác nhau (desktop, mobile).

Như ví dụ này dùng media query để làm cho font chữ trên mobile nhỏ hơn 20%
Bài tập:
Tạo 1 trang web có chữ hello world ở giữa trang, trên nền xám, như hình
Có thể tạo bằng HTML, hoặc React, hoặc UI Builder
Sử dụng font Titillium Web, trên desktop (máy tính) kích thước 32px, ở điện thoại kích thước nhỏ hơn 12.5%;