NomCss

NomCss

nom.css · nom-navigation · nom-ui · nom-form · nom-content
NomJs NomCss NomEditor
Bắt đầu
  • Giới thiệu, thứ tự nạp
  • Màu, token
Layout (nom.css)
  • Breakpoint, container
  • Grid
  • Gutter
  • Flexbox
  • Display, ẩn hiện
  • Spacing
  • Sizing, text
  • Position, overflow, order
Thành phần (nom-ui.css)
  • Nút
  • Form cơ bản
  • Card, alert, badge, chip
  • Bảng
  • Tiện ích nhỏ
Form mở rộng (nom-form)
  • Bố cục form, nhãn nổi
  • Switch, range, tệp
  • Input group
  • Nút mở rộng
  • Nhóm nút
  • Select tuỳ biến
Navigation
  • Menu ngang
  • Menu dọc
  • Phân trang, breadcrumb
Khung trang
  • Dải đầu trang, chip-nav
  • Khối, cột phụ, banner
  • Icon (nomfont)
nom-content
  • Danh sách bài
  • Lưới thẻ, dịch vụ
  • Chi tiết bài, chế độ xem
  • Nội dung bài (prose)
  • Đánh giá, tin trước sau, công cụ

NomCss nom.css · nom-ui · nom-form

Bộ CSS thuần của NOM: lưới và tiện ích kiểu Bootstrap (khác tên ở vài chỗ), thành phần giao diện dùng chung, form mở rộng, menu và icon. Giao diện sáng, rõ, ưu tiên điện thoại; màu và bo góc lấy từ token --nom-*, site đổi bằng cách khai báo lại trong site.css.

nom.css

Reset, container, grid 12 cột, flex, spacing, display, sizing, text.

nom-navigation.css

Menu ngang, menu dọc (click, hover), phân trang, breadcrumb.

nom-ui.css

Token, nút, form cơ bản, card, alert, chip, bảng, khung trang, khối.

nom-form.css + js

Input group, nhóm nút, switch, nhãn nổi, select tuỳ biến (gói form).

nom-content.css

Template module Content: danh sách, lưới thẻ, chi tiết bài, prose, đánh giá.

Thứ tự nạp

CSS thư viện trước site.css; nom.js luôn trước plugin. Trang công khai chỉ nạp nom-form khi cần bằng <nom-require name="form" />.

<link rel="stylesheet" href="~/nom/font/nomfont.css" />
<link rel="stylesheet" href="~/nom/css/nom.css" />
<link rel="stylesheet" href="~/nom/css/nom-navigation.css" />
<link rel="stylesheet" href="~/nom/css/nom-ui.css" />
<link rel="stylesheet" href="~/nom/css/nom-form.css" />   <!-- hoặc <nom-require name="form" /> -->
<link rel="stylesheet" href="~/nom/css/nom-content.css" /><!-- layout website nạp sẵn -->
<link rel="stylesheet" href="~/css/site.css" />          <!-- cuối cùng để ghi đè -->

<script src="~/nom/js/nom.js"></script>
<script src="~/nom/js/nom-ui.js"></script>      <!-- .busy() cho nút -->
<script src="~/nom/js/nom-form.js"></script>    <!-- select tuỳ biến -->
Khác Bootstrap: align-center (không phải align-items-center), justify-between, ml-*/mr-* (không có ms-/me-), font-weight-bold, không có .gap-*, .small, .text-muted; breakpoint lg là 1024px.

Màu, token

Khai báo ở :root trong nom-ui.css. Đổi màu chủ đạo của site: khai báo lại biến trong site.css, không sửa file thư viện.

/* site.css */
:root {
    --nom-primary: #0f766e;
    --nom-primary-dark: #115e59;
    --nom-primary-soft: #ccfbf1;
    --nom-radius: 16px;
    --nom-field-height: 48px;     /* chiều cao ô nhập */
}

Breakpoint, container

Năm mốc theo min-width. Lưu ý lg = 1024px, xl = 1280px (khác Bootstrap).

Tiền tốTừ (min-width).container tối đa
(mặc định)0100%
sm576px540px
md768px720px
lg1024px960px
xl1280px1240px
xxl1536px1480px

Màn hình hiện tại: …

.container giới hạn bề rộng theo mốc, .container-fluid rộng hết; cả hai có lề ngang 15px.

Grid

.row + .col-* (1–12). Cột mặc định rộng 100%; thêm tiền tố mốc để đổi từ màn đó trở lên.

Cột cố định

.col-4
.col-4
.col-4
.col-3
.col-9

Responsive

Điện thoại 1 cột, máy tính bảng 2 cột, máy tính 4 cột. Kéo hẹp cửa sổ để xem.

col-12 col-md-6 col-lg-3
col-12 col-md-6 col-lg-3
col-12 col-md-6 col-lg-3
col-12 col-md-6 col-lg-3

Cột tự giãn, theo nội dung

.col chia đều phần còn lại; .col-auto rộng theo nội dung.

.col-auto (nội dung)
.col
.col

Cột lồng nhau

.col-md-8
.col-6
.col-6
.col-md-4

Gutter

Khoảng cách giữa cột đặt trên .row: g-* (hai chiều), gx-* (ngang), gy-* (dọc). Thang: 0 = 0, 1 = .25rem, 2 = .5rem, 3 = 1rem, 4 = 1.5rem, 5 = 3rem.

g-0
g-0
g-0
g-4
g-4
g-4
gx-1 gy-4
gx-1 gy-4
gx-1 gy-4
gx-1 gy-4

Flexbox

.d-flex kèm justify-* (start, end, center, between, around, evenly), align-* (start, end, center, baseline, stretch), flex-column, flex-wrap, flex-grow-1, align-self-*. Không có .gap-* và không có bản theo mốc cho hướng (flex-md-row…): dùng margin hoặc CSS riêng.

A
B
C
justify-center
align-end
Cố định
flex-grow-1
align-self-center
justify-evenly
justify-evenly
justify-evenly
flex-column
flex-column

Display, ẩn hiện theo màn

.d-none .d-block .d-inline-block .d-flex .d-grid và bản theo mốc .d-md-*, .d-lg-*… Cặp hay dùng: d-none d-lg-flex (chỉ hiện từ 1024px), d-lg-none (ẩn từ 1024px).

Chỉ thấy ở máy tính (d-none d-lg-block)
Chỉ thấy ở điện thoại, máy tính bảng (d-lg-none)
Chỉ thấy ở máy tính bảng (d-none d-md-block d-lg-none)
Đừng đặt display bằng CSS riêng cho phần tử đang dùng d-*: CSS nạp sau sẽ đè, phần tử không ẩn được.

Spacing

Margin m- mt- mb- ml- mr- mx- my-, padding p- pt- pb- pl- pr- px- py-, mức 0–5; mx-auto, ml-auto để căn.

p-1
p-3
p-5
px-4 py-1
Trái
ml-auto đẩy sang phải
w-50 mx-auto

Sizing, text

Rộng w-25 w-50 w-75 w-100 w-auto, cao h-*, mw-100, vh-100. Chữ text-left/center/right/justify, text-uppercase, font-italic, font-weight-light → bold.

w-25
w-50
w-75
w-100

text-center font-weight-light

text-right font-weight-semibold

text-uppercase font-weight-bold

font-italic

Position, overflow, order

position-relative/absolute/fixed/sticky, overflow-auto/hidden (và -x-, -y-), order-first, order-0…6, order-last và bản theo mốc.

1 (order-last)
2
3 (order-first, lg về chỗ cũ)
Vùng rộng 900px trong overflow-x-auto: cuộn ngang trên màn hẹp

Nút nom-ui.css

Nút cơ bản cao 44px (vùng chạm), có trạng thái đang xử lý nom('#id').busy(true) của nom-ui.js. Màu khác, cỡ lớn, nút icon ở mục Nút mở rộng.

Form cơ bản nom-ui.css

.form-group > label + .form-control / .form-select; .form-hint cho gợi ý; .is-invalid + .invalid-feedback khi lỗi; nhãn .required thêm dấu *. Đổi nền ô nhập bằng background-color (đừng dùng background gộp, sẽ mất mũi tên của select).

Nhập đầy đủ họ và tên.
Email không hợp lệ.

Card, alert, badge, chip

Card

Nền trắng, bo góc, bóng nhẹ. Nội dung đặt trong .card-body.

Card hover

Thêm .card-hover: nổi lên khi trỏ chuột.

alert-info: thông tin.
alert-success: đã lưu.
alert-warning: cần xem lại.
alert-danger: có lỗi.
Thông báo 3 chip chip-success chip-warning chip-danger chip-muted

Bảng

.table-wrap (khung, cuộn ngang khi hẹp) bọc table.table.

Số ký hiệuTrích yếuNgàyTrạng thái
12/QĐ-UBNDBan hành quy chế làm việc07/10/2026Còn hiệu lực
08/CV-STCHướng dẫn quyết toán năm 202601/10/2026Hết hiệu lực
05/TB-VPLịch làm việc tuần 4128/09/2026Chưa hiệu lực

Tiện ích nhỏ

progress-bar, line-clamp-2/-3 (cắt dòng), ratio-16x9 (khung 16:9 cho video, ảnh), text-small, empty.

line-clamp-2: Đoạn văn dài sẽ bị cắt sau hai dòng và hiện dấu ba chấm. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

ratio-16x9

text-small: chữ nhỏ .875rem

empty: chưa có dữ liệu

Bố cục form, nhãn nổi nom-form

.form-row (nhãn bên trái từ 768px), .form-fieldset, .form-actions (-end, -sticky, -stack), .form-floating (ô nhập cần placeholder=" "), cỡ .form-control-sm/-lg, .form-counter.

Thông tin liên hệ
Nhãn bên trái từ 768px.
0/120

Switch, range, tệp nom-form

Input group nom-form

Ghép ô nhập với chữ, icon, nút hoặc select tuỳ biến; .input-icon đặt icon, nút nhỏ bên trong ô.

https:// .html

Nút mở rộng nom-form

Nút tròn nổi góc màn hình (thêm mới trên điện thoại): <button class="btn btn-primary btn-fab">.

Nhóm nút nom-form

.btn-group (ngang), .btn-group-vertical, .btn-group-block (rộng hết khung), .btn-toolbar; chọn một hoặc nhiều bằng radio/checkbox ẩn .btn-check + label.btn; kiểu phân đoạn .btn-segmented.

Select tuỳ biến nom-form.js

Thêm lớp select-options cho <select>; enable-search để có ô tìm (không phân biệt dấu); multiple để chọn nhiều dạng thẻ. Select gốc vẫn nằm trong form nên submit, required, asp-for, nom('#id').val() dùng như bình thường.

Đổi lựa chọn để xem nom('#so-skills').val()
nom('#so-skills').val(['html', 'css']).trigger('change');   // đổi giá trị bằng code
nom('#id').selectOptions('refresh');                        // sau khi thêm/bớt <option>
nom('#id').selectOptions('open' | 'close' | 'destroy');

Menu ngang nom-navigation.css

ul.menu-horizontal, mục có con li.has-sub > ul; mở bằng hover, nhiều cấp. Chữ trắng nên đặt trên nền màu (thanh điều hướng của site). Màu mặc định tím; đổi theo tông site trong site.css.

  • Trang chủ
  • Tin tức
    • Tin hoạt động
    • Tin chuyên ngành
      • Tài chính
      • Ngân sách
  • Liên hệ

Menu dọc

ul.menu-vertical mở bằng click (cần JS bật lớp active trên li.has-sub, xem script cuối trang); ul.menu-vertical-hover bung sang phải khi hover, không cần JS.

  • Tổng quan
  • Văn bản (click)
    • Quyết định
    • Công văn
  • Liên hệ
  • Tổng quan
  • Thư viện (hover)
    • Ảnh
    • Video
  • Hỏi đáp

Phân trang, breadcrumb

Trạng thái .active, .disabled đặt trên thẻ <a>. Breadcrumb tự chèn dấu ›, mục cuối không có link là trang hiện tại.

  • Trang chủ
  • Tin tức
  • Tin hoạt động
  • ‹ Trước
  • 1
  • 2
  • 3
  • Sau ›

Dải đầu trang, chip-nav

.page-header (nền tràn ngang màn hình dù nằm trong .container) chứa breadcrumb, .page-title, .page-subtitle, .chip-nav; đổi màu bằng biến --page-header-bg, --page-header-fg. Bản gọn: .page-header-sm.

  • Trang chủ
  • Tin tức

Tin tức

Tin hoạt động, tin chuyên ngành của đơn vị.

Tất cả Tin hoạt động Tin chuyên ngành

Khối, cột phụ, banner

.layout-sidebar chia cột chính và cột phụ 320px từ 1024px; khối .block › .block-header (+ .block-more), .block-body, .block-links, .post-list; .banner ảnh kèm tiêu đề.

Tin mới

Xem thêm
  • Hội nghị tổng kết công tác năm 202620/10/2026
  • Triển khai cổng dịch vụ công trực tuyến18/10/2026

Chuyên mục

  • Tin hoạt động
  • Tin chuyên ngành
BannerẢnh 16:9 kèm tiêu đề, mô tả ngắn.

Icon (nomfont)

<i class="icon-tên"></i>. Danh sách đọc từ nomfont.css; bấm vào icon để chép tên lớp.

Danh sách bài nom-content

Template List: .content-list-items › article.content-list-item (thêm .has-thumb khi có ảnh: ảnh trái 280px từ 768px, trên điện thoại ảnh nằm trên). Dòng thông tin .content-meta dùng chung cho danh sách và chi tiết; mô tả cắt bằng .line-clamp-3.

Hội nghị tổng kết công tác năm 2026 và triển khai nhiệm vụ năm 2027

20/10/2026 1.250

Sáng nay, đơn vị tổ chức hội nghị tổng kết, đánh giá kết quả thực hiện nhiệm vụ năm 2026, đề ra phương hướng và giải pháp trọng tâm cho năm tới.

Thông báo lịch tiếp công dân tháng 11

18/10/2026

Lưới thẻ, dịch vụ nom-content

Template Grid: .card.card-hover (nom-ui) + .content-card (thẻ cao bằng nhau trong hàng, phần thân giãn hết chiều cao). Template Service thêm .service-card: biểu tượng .icon-wrap khi không có ảnh và liên kết .more dính đáy thẻ.

Triển khai cổng dịch vụ công trực tuyến

18/10/2026

Người dân nộp hồ sơ, theo dõi kết quả trực tuyến mọi lúc, mọi nơi.

Thiết kế website

Giao diện chuẩn, tối ưu điện thoại, quản trị nội dung dễ dàng.

Xem chi tiết

Hosting, tên miền

Mô tả ngắn hơn vẫn giữ liên kết ở đáy thẻ.

Xem chi tiết

Chi tiết bài, chế độ xem nom-content

article.content-detail: hộp bài; .content-detail-bar gồm .content-meta và .content-reader (nền sáng, tối, cỡ chữ). Nền tối là lớp .is-dark (đặt lại token --nom-* trong bài); cỡ chữ là biến --content-scale. Trên site do nom-content.js (gói content) xử lý và nhớ lựa chọn; ở đây bấm thử bằng script của trang. Thanh nghe .content-audio-player chỉ có khi bài có audio.

Hội nghị tổng kết công tác năm 2026

20/10/2026 08:30 Cập nhật 20/10/2026 10:15 1.250
Chế độ xem: Cỡ chữ: | |
Nghe đọc bài 0:00 / 3:25
Giọng đọc tự động

Đoạn mô tả (.lead) có vạch màu chính bên trái, cỡ chữ nhân theo --content-scale.

Thân bài (.content-body) cũng đổi cỡ chữ theo chế độ xem. Bấm A+ hoặc A- để thử, bấm biểu tượng ngôi sao để đổi nền.

Trích dẫn trong bài.

Nguồn: Báo điện tử

Tệp đính kèm

ke-hoach-2027.pdf

Nội dung bài (prose) nom-content

.content-body định dạng HTML do trình soạn thảo tạo ra: khoảng cách giữa các khối, tiêu đề h2/h3, ảnh bo góc, chú thích ảnh, trích dẫn, bảng, danh sách, iframe 16:9.

Tiêu đề mục (h2)

Đoạn văn thường với chữ đậm, chữ nghiêng và liên kết. Chữ dài không ngắt dòng cũng không tràn khung.

Tiêu đề nhỏ (h3)

  • Mục danh sách thứ nhất
  • Mục danh sách thứ hai
Trích dẫn: nền xám nhạt, vạch trái.
Chỉ tiêuKế hoạchThực hiện
Hồ sơ trực tuyến80%86%
Đúng hạn95%98%

Đánh giá, tin trước sau, công cụ nom-content

Phần cuối bài chi tiết: .content-rating (sao tô vàng với .is-on), .content-readmore (tin mới hơn trái, tin cũ hơn .is-older căn phải), .content-tools (nút góp ý, chia sẻ; .content-tools-spacer đẩy phần chia sẻ sang phải).

Bạn hài lòng với nội dung này?

4,6/5 từ 128 lượt đánh giá

Tin mới hơn Triển khai cổng dịch vụ công trực tuyến toàn tỉnh
Tin cũ hơn Thông báo lịch tiếp công dân tháng 10
Chia sẻ Facebook Gửi email