Hướng dẫn build template sang angular 8
Lần trước mình đã có một bài hướng dẫn các bạn biến một file pts thành 1 giao diện web, hôm nay chúng ta sẽ bắt tay vào làm một trang web dự báo thời tiết mà hoàn toàn có thể đem ra sử dụng thật luôn, từ các bước thiết kế cho đến lập trình sử dụng Adobe XD, Angular 7 và Firebase. Bước 1: Thiết kếBạn có thể down bản thiết kế tại đây để xem các layer xếp chồng lên nhau thế nào để tạo ra được bản thiết kế cuối cùng. A. Thương hiệuThương hiệu sẽ thể hiện được giá trị cốt lõi của nó thông qua bản thiết kế, và ở đây thể hiện sự tối giản, gọn gàng và dễ sử dụng.
Việc thiết kế logo nói dễ không dễ, nói khó cũng không hẳn, căn bản là phải phù hợp với mục đích của thương hiệu. Như logo của Nike, chỉ là một dấu chữ check, mất có 35$, trông khi logo của pepsi, cũng chỉ là 3 màu cơ bản xoay qua lại một chút, tốn 1.000.000$ Còn đây là logo chúng ta sẽ dùng, chỉ là một chữ M đơn giản, sử dụng 2 hình tam giác giao nhau, vs 2 màu là 2 màu cơ bản của trang web, hiệu quả và chỉ tốn có 0 đồng.B. UI/UXỨng dụng chủ yếu sử dụng các thẻ có đổ bóng giống như những mảnh giấy trôi nổi. Chỉ những thông tin quan trọng mới được hiển thị ở phía trước để tránh khiến giao diện lộn xộn và sử dụng các hành ảnh động để tăng điểm UX.
Dark mode
Có một cách để người dùng có thể dễ dàng đoán ra địa điểm mà lại lấp đầy khoảng trống một cách cực kì trực quan, đấy là thêm một bức tranh minh họa địa điểm, họ sẽ chẳng cần phải đọc chữ, mà hình ảnh thì lúc nào cũng để lại ấn tượng hơn. Cùng nghía qua 1 số hình minh họa nhé!
Bước 2: Lập trìnhĐã gọi là từ A tới Z thì phải bắt đầu từ người chưa biết gì, nên chúng ta sẽ bắt đầu từ việc install nodejs và angular CLI nhé. Ai biết rồi thì có thể bỏ qua đoạn này. Install nodejs từ đây, sau đó mở console, install Angular CLI và typescript bằng câu lệnh sau
Sau đấy chạy dòng lệnh sau để generate app sử dụng Angular CLI và đừng quên thêm
7 để về sau phân trang và thêm các đường dẫn.
Sau khi đã generate và install xong các thứ cần thiết, chúng ta sẽ khởi động server bằng câu lệnh (thêm
8 để tự động mở ứng dụng trên tab mới)
A. Template và styleTrước khi đọc tiếp, hãy đảm bảo bạn sẽ tận dụng tối đa bài hướng dẫn này, bằng cách ngưng việc copy + paste, hãy đọc code, mở phần mềm code và trình duyệt cạnh nhau, gõ lại theo cách của bạn, đó là cách duy nhất để bạn có thể hiểu từ đầu đến cuối. Rồi, giờ thì quay trở lại project, nơi chúng ta đã hoàn thành các bước setup cơ bản, tiếp theo sẽ là viết HTML và CSS. Hãy mở phần mềm code yêu thích của bạn và bắt đầu nào!
Chúng ta sẽ sử dụng root component
9 cho phần navbar component, sẽ làm cho nó ẩn hiện tùy vào việc người dùng có login hay không (sẽ nói đến trong part 2). Có một số thư viện Angular có thể hỗ trợ, nhưng để đảm bảo nó nhẹ nhất có thể, trong bài viết này sẽ không sử dụng đến. Đầu tiên mở file
0, xóa toàn bộ đoạn HTML mặc định đi, và thêm đoạn HTML này vào:
Thêm hàm này vào file
1 để đóng mở sidenav
SVG icon SVG icon và logo bạn có thể lấy ở đây (copy + paste)
Thêm style cho root component Giờ là thời gian dành cho css, hãy xem nhanh đoạn css bên dưới và xem kết quả đạt được, sau đó tự viết css của bạn, vì mỗi người 1 quan niệm về cái đẹp =))
Hoa mắt nhỉ, giờ giải thích cụ thể hơn đoạn CSS trên nhé
Ở đây ta dùng CSS grid để chia bố cục, 1 phần nhỏ phía trên cho navbar, phần to phía dưới cho router outlet, cũng chính là nội dung của trang, giống như thế này:
fix cứng vị trí của sidenav là trên cùng bên tay trái
translateX ở đây sẽ dịch chuyển
2 theo trục X 1 đoạn -103%, tức là giấu nó vào bên trái ý, sau đó ta thêm vào class
3
để reset lại,
2 sẽ hiện thị ra luôn, ko bị giấu đi nữa. Bố cục của chúng ta như thế này Demo
Một mẹo nhỏ về UI là cách hiển thị nút chuyển đổi giữa 2 kiểu giao diện. Đầu tiên ta set
5 cho thuộc tính
6 để bỏ đi các css mặc định, sau đó sử dụng 2 class cho nền nút chuyển đổi và màu sắc, vị trí của hình tròn, ta dùng 1 biến boolean để lưu trữ kiểu giao diện hiện tại, chuyển đổi giữa 2 class bằng
7 đã được tích hợp sẵn trong Angular.
Đầu tiên chúng ta tạo component bằng lệnh sau:
0 Trong component này chúng ta sẽ gọi đến và hiển thị 2 component là
8 và
9
1
Ở đây ta dùng
0 để chuyển giữa các kiểu thời tiết
2 Thêm CSS
3 Ta sẽ được demo thế này Chế độ ban đêm Bạn có thể thấy có 1 số css thêm hậu tố
1 là để dùng cho chế độ ban đêm, vẫn dùng
7 để chuyển đổi class. Ví dụ trong trường hợp này, khi chuyển sang chế độ ban đêm
Ở component add card thì ta cũng thêm
7 cho chế độ ban đêm, và thêm
4 để điều hướng người dùng đến trang thêm thành phố khi click vào card đó
4 Css về cơ bản cũng không khác quá nhiều, vì nó cần đồng bộ vs các card khác, vẫn sử dụng grid layout
5 Kết quả
Đây là component để hiển thị chi tiết thời tiết 1 thành phố. Ta sử dụng
5 để lấy dữ liệu thời tiết trong ngày hôm nay và 5 ngày tới, lưu vào các biến riêng để hiển thị ngoài màn hình
6 Phần HTML của trang này có rất nhiều svgs nên rất là dài, vì thế sẽ không đề cập đến trong bài này, bạn có thể vào đây để xem full code nhé. Bài dài quá rồi nên lần sau mình sẽ nói tiếp phần service và router nhé. :3 Nguồn: https://medium.com/@hamedbaatour/build-a-real-world-beautiful-web-app-with-angular-6-a-to-z-ultimate-guide-2018-part-i-e121dd1d55e |