Система проектирования для создания точных воссозданий старых интерфейсов.
Содержание статьи
Введение
98.css — это библиотека CSS для создания интерфейсов, похожих на Windows 98.
Смотрите больше на GitHub.
Эта библиотека опирается на использование семантического HTML . Чтобы сделать кнопку, вам понадобится
использовать
. Элементы ввода требуют меток. Кнопки значков полагаются на
ария-метка
. Эта страница проведет вас через этот процесс, но доступность является основной
цель этого проекта.
Вы можете переопределить многие стили ваших элементов, сохраняя при этом внешний вид, предоставленный
эта библиотека. Нужно больше отступов на кнопках? Действуй. Нужно добавить немного цвета на ваши входные метки?
Будь нашим гостем.
Эта библиотека не содержит JavaScript она просто стилизует ваш HTML с помощью CSS.
Это означает, что 98.css совместим с выбранной вами средой интерфейса.
Вот пример 98.css, используемого с React, и
пример с ванильным JavaScript. Самый быстрый способ использовать 98.css — это импортировать его из unpkg.
Вы можете установить 98.css со страницы релизов GitHub или из npm.
npm install 98.css
Компоненты
Кнопка
Командная кнопка также называемая кнопкой, представляет собой элемент управления.
это заставляет приложение выполнить какое-либо действие, когда пользователь щелкает по нему.
Стандартная кнопка имеет ширину 75px и высоту 23px, с выпуклой внешней и внутренней границей.
По умолчанию им дается 12px горизонтального отступа.
Показать код
< кнопка > Нажать кнопку </ > >
При нажатии кнопок выпуклые границы становятся утопленными.
Следующая кнопка имитируется в нажатом (активном) состоянии.
Показать код
кнопка > Я нажимаю кнопку </ >
Отключенные кнопки поддерживают ту же поднятую границу, но имеют «размытый»
появление в их лейбле.
Показать код
Кнопка [ отключена > > Я не могу нажать </ кнопка >
Фокус кнопки обозначен пунктирной рамкой, установите 4px в пределах содержимого кнопки.
Следующий пример моделируется, чтобы быть сосредоточенным.
Показать код
кнопка > Я в фокусе </ кнопка > > ]
Флажок
Флажок представляет самостоятельный или неисключительный выбор.
Флажки представлены в виде утопленной панели, заполненной значком «проверить», когда
выбранный, рядом с меткой, указывающей выбор.
Примечание: вы должны включить соответствующую метку после
ваш флажок, используя элемент
с атрибутом для
указал на id
вашего ввода. Это гарантирует, что флажок прост в использовании с
вспомогательные технологии, обеспечивающие удобство работы для всех (навигация с помощью клавиши табуляции,
возможность щелкнуть весь ярлык, чтобы выбрать поле).
Флажки могут быть выбраны и отключены с помощью стандартных отмеченных
и отключенных
атрибутов.
При группировании входов оберните каждый вход в контейнер с помощью класса field-row
. Это обеспечивает
согласованное расстояние между входами.
OptionButton
Опциональная кнопка также называемая переключателем, представляет собой одну
выбор в рамках ограниченного набора взаимоисключающих выборов. То есть пользователь может выбирать только
один набор опций.
Кнопки выбора могут быть использованы через радио типа
на элементе ввода.
Кнопки параметров можно сгруппировать, указав общий атрибут name
на каждом
вход. Как и прежде: при группировке входов оберните каждый вход в контейнер с помощью
field-row
класс для обеспечения согласованного расстояния между входами.
Кнопки выбора также можно проверять
и отключать
с соответствующими им
HTML атрибуты.
GroupBox
Групповое поле — это специальный элемент управления, который можно использовать для организации набора
управления. Групповое поле представляет собой прямоугольную рамку с дополнительной меткой, которая окружает
набор элементов управления.
Групповой блок можно использовать, обернув ваши элементы тегом fieldset
.
Он содержит затонувшую внешнюю границу и приподнятую внутреннюю границу, напоминающую выгравированную коробку
вокруг вашего контроля.
Вы можете снабдить свою группу ярлыком, поместив элемент legend
в пределах набора полей
.
TextBox
Текстовое поле (также называемое элементом управления редактированием) является
прямоугольный элемент управления, где пользователь вводит или редактирует текст. Это может
быть определены для поддержки одной строки или нескольких строк текста.
Текстовые поля можно визуализировать, указав тип text
на
элемент ввода
. Как и в случае с флажками и переключателями, вы
должен предоставить соответствующую метку с правильно установленным для
атрибута, и оберните оба в контейнер с полем field-row
.
Кроме того, вы можете использовать класс с полями в стеке
разместить ярлык над входом, а не рядом с ним.
Для поддержки нескольких строк в пользовательском вводе используйте текстовую область
элемент вместо
Показать код
< div class = = «сложены по полю» style = "ширина: 200 пикселей" >
< label для = "text20" > Дополнительные примечания </ label > >
< textarea id = "text20" строк = "8" > </ текстовое поле >
</ DIV >
Выпадающее
Раскрывающийся список позволяет выбрать только
один элемент из списка. В закрытом состоянии дисплей отображает
текущее значение для контроля. Пользователь открывает список для изменения
Значение.
Выпадающие списки можно отобразить с помощью опций select
и
элементы.
Показать код
< выбрать >
< опция > 5 - Невероятно! </ опция >
< option > 4 - Отлично! </ option >
< option > 3 - Довольно хороший </ option >
< опция > 2 - Не так уж велика </ опция >
< опция > 1 - Неудачная </ опция >
</ выберите >
По умолчанию будет выбран первый вариант. Вы можете изменить это
предоставление одному из ваших элементов опции
выбранных
атрибут.
Показать код
< выбрать >
< опция > 5 - Невероятно! </ опция >
< option > 4 - Отлично! </ option >
< опция выбрана > 3 - Довольно хорошая </ опция >
< опция > 2 - Не так уж велика </ опция >
< опция > 1 - Неудачная </ опция >
</ выберите >
Окно
Следующие компоненты иллюстрируют, как построить полные окна, используя
98.css.
Строка заголовка
В верхней части окна, внутри его границы, находится строка заголовка
(также упоминается как заголовок или строка заголовка), который распространяется через
ширина окна. Строка заголовка идентифицирует содержимое
окно.
Включите кнопки команд, связанные с общими командами
Главное окно в строке заголовка. Эти кнопки действуют как ярлыки для конкретных
оконные команды.
Вы можете создать полную строку заголовка, используя три класса,
заголовок строки
заголовок строки текста
и заголовок панели управления
.
Показать код
< div class = «заголовок строки» > > ]
< div class = "title-bar-text" > Панель заголовка </ div >
< div class = "заголовок панели управления" >
Кнопка < aria-label = Кнопка «Закрыть» > > </ > >
</ DIV >
</ DIV >
Мы используем aria-label
для рендеринга кнопки Закрыть, чтобы
Вспомогательные технологии знают цель этой кнопки. Вы также можете использовать
«Свернуть» и «Свернуть», например, так:
Показать код
< div class = «заголовок строки» > > ]
< div class = "title-bar-text" > Панель заголовка </ div >
< div class = "заголовок панели управления" >
Кнопка < aria-label = Кнопка «Свернуть» > </ > >
Кнопка < aria-label = «Развернуть» > </ кнопка > >
Кнопка < aria-label = Кнопка «Закрыть» > > </ > >
</ DIV >
</ DIV >
Содержимое окна
Каждое окно имеет границу, которая определяет его форму.
Чтобы придать нашей строке заголовка дом, мы используем окно
учебный класс. Это обеспечивает приподнятую внешнюю и внутреннюю границу, а также некоторые
обивка. Мы можем свободно изменить размер окна, указав ширину в
контейнерный стиль.
Показать код
< div class = "окно" в стиле = "ширина: 300 пикселей" >
< div class = "заголовок" >
< div class = "title-bar-text" > Полное окно </ div >
< div class = "заголовок панели управления" >
Кнопка < aria-label = Кнопка «Свернуть» > </ > >
Кнопка < aria-label = «Развернуть» > </ кнопка > >
Кнопка < aria-label = Кнопка «Закрыть» > > </ > >
</ DIV >
</ DIV >
</ DIV >
Чтобы нарисовать содержимое окна, мы используем window-body
класс под заголовком.
Там так много места для деятельности!
Показать код
< div class = "окно" в стиле = "ширина: 300 пикселей" >
< div class = "заголовок" >
< div class = "title-bar-text" > Окно с вещами в нем </ ДИВ >
< div class = "заголовок панели управления" >
Кнопка < aria-label = Кнопка «Свернуть» > </ > >
Кнопка < aria-label = «Развернуть» > </ кнопка > >
Кнопка < aria-label = Кнопка «Закрыть» > > </ > >
</ DIV >
</ DIV >
< div class = "window-body" >
< p > Так много места для деятельности! </ p >
</ DIV >
</ DIV >
TreeView
древовидный элемент управления является специальным списком управления
который отображает набор объектов в виде структуры с отступом
на их логические иерархические отношения.
Чтобы отобразить дерево, используйте элемент ul
с
древовидная
класс. Дети этого списка ( li
элементы), может содержать все, что вы хотите.
- Мы можем поставить
- ✨ Безотносительно ✨
- Мы хотим здесь
Показать код
< ul class = «древовидная структура» >
< li > Мы можем поставить </ li >
< li > < strong стиль = "цвет: фиолетовый" > ✨ Независимо от ✨ </ сильный > </ li >
< li > Мы хотим здесь </ li >
</ уль >
Чтобы сделать это дерево, мы можем вложить дополнительные элементы ul
(класс не требуется на них). Это даст им хорошую пунктирную
границы и отступы для иллюстрации структуры дерева.
- Содержание
- Что такое веб-разработка?
-
CSS
- Селекторы
- Специфичность
- Свойство
-
JavaScript
- HTML
- Особая благодарность
Показать код
< ul class = «древовидная структура» >
< li > Содержание </ li >
< li > Что такое веб-разработка? </ li >
< Li >
CSS
< уль >
< Li > Селекторы </ Li >
< Li > Специфичность </ Li >
< Li > Свойства </ Li >
</ уль >
</ Li >
< Li >
JavaScript
< уль >
< li > Избегать любой ценой </ li >
</ уль >
</ Li >
< Li > HTML </ Li >
< li > Особая благодарность </ li >
</ уль >
Проблемы, вклад и т. Д.
98.css имеет лицензию MIT.
Обратитесь к странице проблем GitHub, чтобы увидеть ошибки
в моем CSS или сообщать о новых. Я бы очень хотел видеть ваши запросы на получение данных (особенно те, которые
с открытым исходным кодом!) и с радостью предоставит обзор кода. 98.css это веселый, глупый проект, и я бы хотел
сделать это забавным местом для наращивания мышечной массы с открытым исходным кодом.
Спасибо за проверку моего маленького проекта, надеюсь, сегодня он принес вам немного радости. Рассматривать
в главной роли / следуя по GitHub и, возможно,
подписаться на более интересные вещи в моем твиттере. 👋