
Nghiên cứu điển hình về GitHub Monaspace
GitHub Monaspace Case Study
GitHub Next vừa ra mắt Monaspace, một bộ font "superfamily" bao gồm 42 kiểu chữ có thể hoán đổi cho nhau, trải rộng trên 5 nhóm font chính (sans-serif, slab serif, script, mechanical). Mục tiêu của Monaspace là giải quyết vấn đề thiếu sự tiến hóa về kiểu chữ trong các trình soạn thảo code. Dự án này cho thấy tiềm năng của việc tạo ra sự khác biệt trực quan mạnh mẽ hơn trong code, thay vì chỉ dùng duy nhất một font monospace. Nó cũng mang đến cho các developer khả năng tùy biến môi trường code của mình một cách sâu sắc hơn. Các bạn làm công nghệ nên cân nhắc việc sử dụng typography được thiết kế kỹ lưỡng để cải thiện khả năng đọc hiểu code và nâng cao trải nghiệm phát triển tổng thể.
Phông chữ tùy chỉnh dành cho NGHIÊN CỨU TRƯỜNG HỢP LETTERMATIC: MONASPACEBy LettermaticGitHub Next, một vườn ươm nghiên cứu thử nghiệm trong GitHub, lần đầu tiên liên hệ với Lettermatic về phông chữ vào tháng 8 năm 2021. Như chúng tôi đã nói chuyện với...
Phông chữ tùy chỉnh cho

Nghiên cứu trường hợp chữ cái: MONASPACE
By Lettermatic

GitHub Next, một vườn ươm nghiên cứu thử nghiệm trong GitHub, lần đầu tiên liên hệ với Lettermatic về phông chữ vào tháng 8 năm 2021. Khi chúng tôi nói chuyện với Idan Gazit, Giám đốc GitHub Next, rõ ràng là anh ấy, giống như tất cả chúng tôi tại Lettermatic, đều đánh giá cao kiểu chữ đẹp và hữu dụng. Mối quan tâm chung này đã khiến chúng tôi nói chuyện về kiểu chữ được thiết kế cho người soạn thảo mã, điều mà tất cả chúng tôi đều có một số câu hỏi.
Tại sao kiểu chữ dành cho người soạn thảo mã không thay đổi nhiều kể từ khi các công cụ phát triển hiện đại ra đời? Tại sao không có nhiều tùy chọn hơn dành cho các nhà phát triển muốn tùy chỉnh trải nghiệm viết mã của họ? Không thiếu ý kiến về định dạng tài liệu, hệ thống đánh dấu cú pháp hoặc chủ đề màu sắc cho người chỉnh sửa - nhưng tại sao các nhà phát triển lại phải chọn một kiểu chữ duy nhất để làm việc hàng ngày? Những câu hỏi này sẽ dẫn GitHub và Lettermatic trên hành trình tạo ra Monaspace: một siêu họ gồm năm kiểu chữ có thể hoán đổi cho nhau được thiết kế dành riêng cho mã và là một trong những dự án đầy tham vọng nhất của Lettermatic.
Thông tin
- № của Gia đình:5№ Kiểu:42 kiểu tĩnh cho mỗi dòng, tổng cộng 210 kiểu + kiểu biến đổiPhân loại: Humanist Sans, Grotesque Sans, Slab Serif, Script & MechanicalPhát hành:Tháng 11 năm 2023Người đứng đầu GitHub Tiếp theo:Idan GazitNhà thiết kế kiểu chữ Latinh:Riley Cran, Danelle Cheney, Heather CranBiểu tượng chính và dấu câu:Heather CranHỗ trợ ngôn ngữ chính:Heather CranMở rộng hỗ trợ ngôn ngữ: Danelle Cheney, Jane SolomonThiết kế kiểu chữ Cyrillic:Heather Cran, Danelle Cheney, Jane Solomon, Lauren Dickens, Riley CranTư vấn kiểu chữ Cyrillic:Ilya RudermanTư vấn người Hy Lạp:Elina KoutsogiannopoulouTư vấn tiếng Việt:Donny TrươngBiên tập nghiên cứu điển hình:Jane SolomonThiết kế nghiên cứu điển hình: Lauren Dickens, Tina Dirmyer, Anna Thomas, Laura SinisterraMinh họa nghiên cứu điển hình:Rick MurphyTrang web:monaspace.githubnext.com
Trong các trình soạn thảo mã hiện đại, chúng tôi đã kế thừa hệ thống monospace. Một điều đặc biệt thú vị về việc sắp chữ cho mã là nó đã phát triển một cách hiệu quả trong nhánh phân cấp typographic của riêng nó, tách biệt với mọi thứ khác. Ví dụ: trong từ điển, chúng ta có thể thấy sự khác biệt giữa các từ đầu và các định nghĩa hoàn toàn bằng cách sắp chữ, sử dụng các kiểu chữ khác nhau, độ đậm nhạt khác nhau, v.v. Kết hợp thể loại và phong cách là một cách giúp chúng ta phân biệt mọi thứ. Nhưng trong lĩnh vực sắp chữ cho mã, kỳ vọng là có thể có bốn hoặc nhiều màu văn bản khác nhau trên một dòng. Không có kiểu sắp chữ nào khác sử dụng mã màu làm phương pháp chính được mong đợi để phân biệt mọi thứ.
Tên của dự án này, Monaspace, là từ ghép của các từ 'Mona' và 'monospace'. Mona là tên đầu tiên của Linh vật của GitHub, Octocat - in bóng trong logo GitHub. Các kiểu chữ tạo nên Monaspace, nếu chưa rõ ràng, được xây dựng trên hệ thống đơn cách, phù hợp với di sản của các kiểu chữ được tạo ra để viết mã. Dự án này là một bài tập nhằm tận dụng chuyên môn của chúng tôi với tư cách là nhà thiết kế kiểu chữ để tận dụng những điểm yếu cố hữu trong tất cả các kiểu chữ đơn cách và biến chúng thành lợi thế của chúng tôi.
Vậy Chữa lành kết cấu là gì? Hãy tưởng tượng rằng có một nhóm các hình tượng đơn cách muốn chiếm không gian nếu có sẵn. Đây là những ký tự như chữ thường m và w, như đã thảo luận ở trên. Họ muốn rộng hơn nhưng không thể vì hạn chế đơn cách của chiều rộng nâng cao cố định.
Chúng tôi cũng có loại hình tượng khác như chữ thường
i và l, thường rất hẹp nhưng buộc phải vươn ra tới các cạnh của chiều rộng đơn cách, cố gắng thuyết phục chúng ta rằng chúng có chiều rộng phù hợp cho kiểu chữ này. Chúng tôi muốn coi những hình tượng này là sự sẵn sàng từ bỏ một số không gian vì chúng có quá nhiều.


Tắt sửa chữa kết cấu


Khi bạn nhìn vào một tập hợp từ nhất định trong một kiểu chữ đơn cách, đôi khi bạn có thể thấy các tình huống trong đó một trong những hình tượng muốn có nhiều không gian hơn xuất hiện ngay bên cạnh một trong những hình tượng muốn nhường một khoảng trống vì nó có quá nhiều. Điều gì sẽ xảy ra nếu một phông chữ biết được sự ghép nối đó và có thể vẽ lại chữ cái i để chiếm ít không gian hơn nhằm nhường chỗ cho chữ cái m?
Một yêu cầu quan trọng của Chỉnh sửa kết cấu là giữ nguyên lưới đơn cách, ngay cả khi các chữ cái trở nên rộng hơn hoặc hẹp hơn để đảm bảo mức độ dễ đọc. Vì vậy, khi chữ thường i hẹp hơn thì nó sẽ hẹp hơn về một bên và khi m rộng hơn thì nó sẽ rộng hơn theo cùng một hướng. Điều này cho phép phần thân hoặc khung giới hạn xung quanh hai chữ cái đó vẫn giữ nguyên như cũ. Trong trường hợp này, hình thức của cả i và m đã thay đổi để cặp này trông giống về mặt hình ảnh hơn trong một kiểu chữ tỷ lệ, trong khi vẫn căn chỉnh với lưới đơn cách ban đầu.
Ngay từ khi bắt đầu dự án này, quay trở lại giai đoạn ban đầu, chúng tôi đã biết muốn kết hợp các tính năng trợ năng làm tiêu chuẩn trong hệ thống loại Monaspace. Nhà phát triển có thể tùy chỉnh giao diện mã của mình để đáp ứng nhu cầu cá nhân bằng những cách nào?
Nếu nhà phát triển có thị lực kém chọn sử dụng Monaspace trong trình chỉnh sửa mã của mình, họ có thể điều chỉnh nhiều cài đặt khác nhau để mang lại lợi ích cho trải nghiệm đọc của mình. Với khả năng kiểm soát trọng lượng và chiều rộng, rất có thể họ có thể giảm kích thước điểm tổng thể của loại chữ, xem nhiều hơn trên màn hình, cuộn ít hơn và diễn giải ý nghĩa nhanh hơn.


One Style
Ngoài ra, chẳng hạn, điều này có thể hữu ích cho những người bị mù màu nếu chúng ta có thể tạo ra hệ thống phân cấp hoàn toàn không dựa vào màu sắc. Với hệ thống kiểu Monaspace, bạn hoàn toàn có thể xây dựng hệ thống phân cấp đó thông qua sự kết hợp liền mạch giữa các kiểu chữ và độ đậm nhạt.
Theo nhiều cách, đây là sự quay trở lại hình thức phân cấp kiểu chữ, cả trong lịch sử sắp chữ và lịch sử chỉnh sửa mã trên chính màn hình. Tất cả các tính năng này đều nhằm mục đích giúp các nhà phát triển tìm ra tiếng nói kiểu chữ trong trình soạn thảo mã phù hợp nhất với họ, bất kể họ có thị lực kém, mù màu hay thị lực bình thường. Các tính năng trợ năng thường được cân nhắc sau trong quá trình thiết kế, điều này có thể dẫn đến kết quả không tốt. Đó không phải là cách chúng tôi nghĩ về khả năng tiếp cận tại Lettermatic. Đối với chúng tôi, khả năng truy cập là nền tảng của bất kỳ kiểu chữ thành công nào và đó chắc chắn là trường hợp của hệ thống kiểu Monaspace.


Mã thống nhất
Trọng tâm của Monaspace là ý tưởng cho phép các nhà phát triển có thể tùy chỉnh kiểu chữ mã hóa của họ theo cách phù hợp với cá nhân họ. Ngoài khả năng người dùng có thể tùy chỉnh trọng lượng và chiều rộng để phù hợp nhất với nhu cầu của mình, Monaspace còn chứa vô số tùy chọn cá nhân hóa theo từng gia đình và phong cách có thể kết hợp và kết hợp theo ý muốn. Ví dụ: Chỉnh sửa kết cấu được khuyến nghị để mức độ dễ đọc tối đa nhưng có thể bật và tắt.
Ngoài ra còn có chín loại biến thể ký tự, cho phép người dùng cá nhân hóa cách các chữ cái, ký hiệu và thậm chí cả số 0 xuất hiện trong trình soạn thảo mã của họ: mỗi kiểu Monaspace bao gồm số 0 chấm, số 0 bị gạch chéo, số 0 gạch chéo ngược, số 0 gạch chéo hoặc số 0 truyền thống. Người dùng thậm chí có thể cá nhân hóa việc căn chỉnh dấu hoa thị và số điểm của nó (năm hoặc sáu). Mỗi danh mục tùy chọn cá nhân hóa này có thể được kết hợp và kết hợp không ngừng để tạo ra trải nghiệm lý tưởng cho mọi người dùng.
Mỗi ngôn ngữ lập trình đều có các cặp ký hiệu thường xuất hiện cùng nhau được gọi là chữ ghép. Vì vậy, chúng tôi đã thêm gần 100 chữ ghép tùy chỉnh để tự động cải thiện các cặp này về mặt hình ảnh. Ví dụ: gõ --> hoán đổi trong một mũi tên được vẽ đầy đủ, các chuỗi ### sẽ được kết nối và === được thay thế bằng dấu bằng ba nét, chỉ nêu tên một số. Các chữ ghép này đều được điều khiển bằng OpenType nên người dùng có thể kết hợp và kết hợp để phù hợp nhất với sở thích và nhu cầu của mình. Chỉ riêng có 10 danh mục chữ ghép riêng biệt có thể được bật riêng lẻ, giúp nhà phát triển có quyền kiểm soát để cá nhân hóa những cài đặt đó sao cho phù hợp nhất với ngôn ngữ và dự án mà họ đang làm việc tại thời điểm đó.


Tắt chữ ghép






FIG. 24 — Tất cả năm dòng trong hệ thống Monaspace đều chứa các tùy chọn về chiều rộng (từ Bình thường đến Bán rộng đến Rộng), trọng lượng (từ ExtraLight đến ExtraBold, với nhiều trọng lượng ở giữa) và nghiêng (hoặc in nghiêng). Monaspace có sẵn ở cả định dạng phông chữ Tĩnh và Biến. Phông chữ tĩnh có các kiểu được xác định trước dọc theo các trục này, trong khi phông chữ Biến đổi cho phép người dùng truy cập vào toàn bộ phạm vi chiều rộng, trọng lượng và độ nghiêng để cá nhân hóa sâu sắc diện mạo của các kiểu Monaspace.
Tổng cộng, Monaspace chứa gần 3/4 triệu glyph. Toàn bộ hệ thống loại Monaspace là nguồn mở, phù hợp với niềm tin nền tảng của GitHub về sứ mệnh nguồn mở. Điều này có nghĩa là tất cả các kiểu chữ trong Monaspace đều có sẵn để tải xuống miễn phí cho bất kỳ ai có kết nối Internet. Điều đó cũng có nghĩa là các nhà phát triển có thể thêm bất kỳ ký tự bổ sung nào mà họ muốn đưa vào các kiểu chữ Monaspace, nếu họ muốn đóng góp cho tất cả người dùng Monaspace hoặc chỉ cho mục đích sử dụng riêng của họ. Ngoài ra, bản chất nguồn mở của dự án này có nghĩa là ngay cả mã giúp cho việc chữa lành kết cấu có thể được cung cấp công khai.
Khi thiết kế Monaspace, chúng tôi đã học được rất nhiều điều về cách hoạt động của thể loại không gian đơn, điều gì nó làm tốt, điều gì không đặc biệt tốt và cách 'chữa lành' những sai sót của nó khi không có ai theo dõi.
Chúng tôi đã tìm ra cách mang lại sự rõ ràng hơn nữa giữa các giọng văn trong kiểu chữ khi được kết hợp đồng thời trong một tài liệu. Chúng tôi đã tìm thấy một tập hợp các phong cách trung lập cho 'trung tâm' của quang phổ và tiến xa hơn tới các loại giọng thử nghiệm khác nhau từ mỏ neo điềm tĩnh và có thể đoán trước đó. Chúng tôi có các thiết kế có thể trở thành phông chữ chính của bạn trong trình chỉnh sửa và các thiết kế có thể hét lên 'Tôi không điển hình!' một cách thuận tiện. Chúng tôi đã tìm ra cách để thêm giọng nói vào mã giống con người hơn và giọng nói máy móc hơn. Chúng tôi đã mang đến cho các nhà phát triển những điều được mong đợi và bất ngờ, với hy vọng rằng cả hai điều đó sẽ hữu ích cho họ trong tương lai.
Các họ loại Monaspace là nguồn mở và có sẵn cho bất kỳ ai sử dụng nhờ GitHub. Tải xuống tại đây và chúng tôi hy vọng bạn sẽ thích sử dụng chúng nhiều như chúng tôi đã thích khi xây dựng chúng.
Bạn quan tâm đến
phông chữ tùy chỉnh?
Hãy trò chuyện, Gửi tin nhắn cho chúng tôi, Gọi cho chúng tôi

Tác giả: homebrewer