тогл это в приложении
Элемент управления Toggle в Power Apps
Toggle — это элемент управления, который пользователь может включить или отключить.
Описание
Элемент управления Toggle разработан для современных пользовательских интерфейсов, но работает так же, как флажок.
Основные свойства
Default — начальное значение элемента управления до его изменения пользователем.
Value — значение элемента управления.
Дополнительные свойства
AccessibleLabel — метка для средств чтения с экрана.
BorderColor — цвет границы элемента управления.
BorderStyle — стиль границы элемента управления: Solid, Dashed, Dotted или None.
BorderThickness — толщина границы элемента управления.
DisplayMode — в зависимости от значения этого режима элемент управления разрешает пользователю вводить данные (Edit), только отображает данные (View) или элемент вообще отключен (Disabled).
DisabledBorderColor — цвет границы элемента управления, если для его свойства DisplayMode установлено значение Disabled.
FalseFill — цвет заливки выключателя при выключенном выключателе.
FalseHoverFill — цвет заливки при наведении при выключенном выключателе.
FalseText — текст, отображаемый при выключенном выключателе.
Fill — цвет фона элемента управления.
FocusedBorderColor — цвет границы элемента управления в тот момент, когда он активен.
FocusedBorderThickness — толщина границы элемента управления при наведении фокуса.
HandleFill – цвет заливки маркера выключателя.
Height — расстояние между верхним и нижним краями элемента управления.
HoverBorderColor — цвет границы элемента управления при наведении на него указателя мыши.
OnChange — действия, выполняемые, когда пользователь изменяет значение элемента управления (например, перемещая ползунок).
OnCheck — действия, выполняемые, когда значение флажка или переключателя изменяется на true.
OnSelect — действия, выполняемые, когда пользователь щелкает элемент управления или касается его.
OnUncheck — действия, выполняемые, когда значение флажка или переключателя изменяется на false.
PressedBorderColor — цвет границы элемента управления при щелчке или касании.
RailFill — фоновый цвет прямоугольника в выключателе, когда он имеет значение false, или цвет линии справа от маркера ползунка.
RailHoverFill — фоновый цвет прямоугольника в выключателе, когда он имеет значение false, или цвет линии справа от маркера ползунка при наведении указателя мыши на выключатель или ползунок.
Reset — определяет, возвращается ли элемент управления к значению по умолчанию.
ShowLabel — отображение текстовой метки возле выключателя.
TabIndex — порядок навигации с помощью клавиатуры относительно других элементов управления.
TextPosition — размещение метки слева или справа от выключателя.
Tooltip — пояснительный текст, отображаемый при наведении указателя мыши на элемент управления.
TrueFill — цвет заливки выключателя при включенном выключателе.
TrueHoverFill — цвет заливки при наведении при включенном выключателе.
TrueText — текст, отображаемый при включенном выключателе.
ValueFill — фоновый цвет прямоугольника в выключателе, когда он имеет значение true, или цвет линии слева от маркера ползунка.
ValueHoverFill — фоновый цвет прямоугольника в выключателе, когда он имеет значение true, или цвет линии слева от маркера ползунка при наведении указателя мыши на выключатель или ползунок.
Visible — определяет, отображается элемент управления или он скрыт.
Width — расстояние между левым и правым краями элемента управления.
X — расстояние между левым краем элемента управления и левым краем его родительского контейнера (или экрана, если родительского контейнера нет).
Y — расстояние между верхним краем элемента управления и верхним краем его родительского контейнера (или экрана, если родительского контейнера нет).
Связанные функции
Пример
Добавьте в приложение выключатель и назовите его Скидка.
Добавьте метку и установите в ее свойстве Текст формулу:
If(Скидка.Value = true, «Цена: 75 руб.», «Цена: 100 руб.»)
Нуждаетесь в дополнительных сведениях о функции If или других функциях?
Нажмите клавишу F5 и измените значение выключателя Скидка.
Цена в метке будет изменяться в соответствии с состоянием выключателя Скидка.
Нажмите клавишу ESC, чтобы вернуться в рабочую область по умолчанию.
Руководство по настройке специальных возможностей
Контрастность цветов
Необходимо настроить достаточный контраст для следующих элементов:
Тогл-принцип в интерфейсах
Пост в двух словах: анализируем, какие панели ключевые для программы. Скрываем ненужные, на нужные назначаем горячие клавиши, начинающимися на Alt + Cmd. Используем мнемонику, чтобы запоминать английские имена панелей: Alt + Cmd + I(nspector), Alt + Cmd + L(ayers). Переназначим все горячие клавиши так, чтобы одни и те же ассоциации срабатывали в разных программах. Позабудем про печаль и боль, умело смеёмся.
Как настраивать свои горячие клавиши в Скетче и не забывать их
И почему так важно назначать горячие клавиши для работы с символами.
Я хочу поделиться важной идеей, которая позволила мне выстроить единую систему горячих клавиш в своей работе. Если ты примешь её, то сможешь в считаные минуты ориентироваться в любых профессиональных редакторах, вне зависимости от их назначения и кажущейся сложности. Sketch, Photoshop, Illustrator, Pages, Axure, Final Cut, After Effects и кончая какой-нибудь Ableton Live или Logic Pro.
Все они используют один и тот же дизайн-паттерн — скрываемые панели.
To toggle (от англ.) — переключать что-либо, что может быть в двух режимах: включено/выключено. Нажал раз — включил, нажал два, выключил. Например, панель слоёв в Фотошопе или сетка в Скетче может быть видима, либо скрыта.
Я иногда натыкаюсь на горячие клавиши, которые следуют тогл-принципу. Не я его придумал. Однако, я не встречал ни одной программы, в которой этот принцип был изначально реализован без переназначений горячих клавиш.
Вам не нужно изучать интерфейс в деталях, а нужно понять, как сделать так, чтобы он не мешал лишними кнопками и панелями, и показывал то, что действительно необходимо для решения вашей текущей задачи. Если ты не используешь какую-то панель прямо сейчас, значит она загаживает интерфейс и снижает фокус внимания.
Идея 1. Что-то скрываемое
Эту идею легко можно довести до абсурда. По интернету гуляла смешная картинка с интерфесом текстового редактора Word, в котором включены все панели, которые в нём только есть:
Это не значит, что у Word был плохой дизайн. Напротив, тогда он предоставлял неслыханную гибкость опытным пользователям. Каждый мог включить в настройках то функциональный набор, который был нужен. Однако, такой уровень несёт опасность для начинающих пользователей. Большинство пользователей Word просто не знало о том, что в его контекстном меню скрыто ещё множество панелей. А чтобы научиться ими пользоваться, нужно читать унылую документацию. Если какая-нибудь важная панель, например Форматирование, исчезала из поля зрения, это могло стать настоящей драмой, поскольку Word воспринимался как сломанный.
Итак, первый из наших ингрединетов — скрываемые панели, содержащие какие-либо UI-кнопки.
Идея 2. Горячая клавиша в режиме on/off
Я впервые столкнулся с тогл-панелями в Фотошопе. Я узнал, что по нажатию F7 панель слоёв можно скрывать. Сперва это показалось довольно бессмысленным: очередная незапоминаемая горячая клавиша, которая скрывала маленькую квадратную панель среди полдюжины других. Но позже я выяснил, что панели в Фотошопе можно настраивать по размеру, делая нужные больше и убирая ненужные. Когда самая важная для веб-дизайна панель «Слои» занимала всю высоту экрана, она значительно загораживала макет, и я её регулярно скрывал, чтобы не мешала. Однако, размножить этот принцип на другие панели не удавалось. Я еле-запомнил F7, начертив её перманентным маркером на руке и развесив по всему дому стикеры-напоминалки. Бессмысленные горячие клавиши невозможно запоминать, если не используешь программу регулярно.
Минус упомянутого дизайна Word заключался ещё и в том, что его тогл-панели нельзя было сделать видимыми при помощи клавиатуры. Каждый раз пользователю приходилось лезть в контекстное меню и ставить галочку напротив нужной панели, чтобы сделать её видимой. Фотошоп решил эту проблему, хоть и очень криво.
Второй ингредиент — горячая клавиша, которая переключает видимость панели туда-обратно.
Идея 3. Используем мнемонику
Горячая клавиша — это не про безумные вытягивания пальцев по клавиатуре, не про запоминание семизначных чисел.
Прежде всего, горячая клавиша это приказ программе в обход графического интерфейса.
В этом её гигантское недооцененное преимущество. Дизайн программы может измениться, новая иконка собъёт с толку, но смысл команды и её название останется прежним.
Чтобы можно было запомнить команду, она должна вызывать человеческие ассоциации и быть понятной. Те, кто выпускает ПО со стандартными горячими клавишами вроде F7, совершают преступление против человечества, поскольку из-за них миллионы людей боятся использовать горячие клавиши, и особенно, переназначать стандартные.
Поскольку у меня стоял английский Фотошоп, панель слоёв в нём называлась Layers. Логично, что я назначил на неё Cmd + L(ayers). Однако, в Фотошопе было много команд, которые имели такой же вид: Cmd + D — Deselect, снятие выделения. Cmd + C и Cmd + V — всем известные копирование и вставка, и ещё множество других. Все они являются командами, которые ведут к каким-то заметным действиям на холсте. Я называю их действиями. Скрытие панели Layers в этом ряду явно было белой вороной. Решение подсказал текстовый редактор Pages, в котором основная панель Inspector скрывалась и показывалась по сочетанию Alt + Cmd + I. Я взял это на вооружение в Фотошопе, а позже и в Скетче.
Пазл сложился: все тогл-сочетания отныне получили вид Alt + Command + [буква].
Теперь однотипные панели вроде Inspector в разных программах автоматически получают постоянное универсальное сочетание.
Пять основных паттернов
Так я разделил горячие клавиши на группы-паттерны по внешнему виду:
В каждом паттерне присутствует ключ (буква).
Тогл-панели
Alt + Cmd + ключ. Умение эффективно использовать тогл-панели — мощнейшая техника, превращающая интерфейс в податливый пластилин на кончиках пальцев. Примеры: Скрыть/показать панель Inspector ( Alt + Cmd + I), скрыть Library в Logic Pro X ( Alt + Cmd + L).
Тогл-режимы
Ctrl + [ключ] — Эту группу я выделил после перехода на Скетч. Есть много действий, которые имеют сходную природу с тогл-панелями, но не выглядят как панель. Примеры: Включить сетку ( Ctrl + G), перейти в режим вращения объектов ( Ctrl + R), замьютить канал в аудио-редакторе ( Ctrl + M).
Инструменты
[ключ] — выбор инструмента. Скетч отлично использует такие горячие клавиши. Примеры: O — Oval Tool, V — Vector Tool, T — Text Tool. Photoshop в более сложном положении, поскольку инструментов в нём гораздо больше. Однако, и в нём это используется: M — Marquee Tool, L — Lasso Tool, B — Brush Tool.
Важные действия
Cmd + [ключ] — команда-действие. Вырезать, выделить, покрасить, переименовать и редактировать — это всё сюда.
Обращения
Shift + Cmd + [ключ] — тут два варианта. Либо парная обращающая команда (Сгруппировать/Разгруппировать), либо ещё один слой команд-действий.
Пример из Скетча, обращение:
Cmd + G — сгруппировать,
Shift + Cmd + G — разгруппировать.
Cmd + Z — отменить,
Shift + Cmd + Z — повторить отменённое действие.
Идея 4. Метод перебора букв
Букв явно меньше, чем команд. Буква S на клавиатуре всего одна, и по такому принципу в Фотошопе на неё претендуют сразу две панели: Swatches и Styles. И тут нам решать, что займёт основное сочетание Alt + Command + S. Что нам нужнее? Допустим, нужно много работать с цветами, поэтому выбираем Swatches. Второе сочетание может разместиться на следующей букве слова.
[S] T Y L E S — S занята Swatches, выбираем следующую букву.
S [T] Y L E S — T свободна. Получили Alt + Cmd+ T.
Как правило, хватает первых трёх букв слова. Если мы дошли до конца слова STYLES и все буквы заняты, возможно, эта панель не настолько важна, чтобы назначать на неё горячую клавишу. Либо придётся освободить уже занятые буквы.
Не держись за ключ
Не стоит стремиться сохранить букву, дополнив тогл-группу какой-нибудь посторонней клавишей типа Shift, потому что это ведёт к незапоминаемым монстрам: Shift + Alt + Cmd+ S, которые придётся зажимать всем офисом. Не надо так.
Если по ошибке вместо Alt + Cmd+ T мы нажимаем Alt + Cmd + S, развернув панель Swatches вместо Styles, ошибку легко исправить, нажав Alt + Cmd+ S снова и не отпуская клавиш Alt + Cmd, нажать следующую букву нужного названия панели, словно мы печатаем слово Styles.
Какие плюсы даёт следование тогл-принципу
Ты используешь память
Если их назначить один раз, твои горячие клавиши работают в любых программах для Mac. Не нужно запоминать, что в Скетче панель слоёв открывается Alt + Cmd + 1, а в Photoshop — F7. В обоих программах можно поставить одну клавишу: Alt + Cmd + L(ayers).
К слову, в Скетче я оставил Alt + Cmd + 1, потому что это легко было запомнить по другой логике: панель 1 слева, панель 2 справа.
Ты экономишь время
И не тратишь его на зрительное запоминание интерфейсов и рассматривание иконок, а обращаешься напрямую к первичному смыслу, ради которого используешь продукт.
Ты группируешь команды по смыслу
По внешнему виду горячей клавиши ты можешь понять, к какой группе она относится.
Ты используешь знакомые слова для подсказок
Читая названия панелей в интерфейсе программы, ты всегда можешь посмотреть, на какую букву они начинаются, зажать тогл-группу Alt + Cmd и добавить нужную букву. Либо, если нужная панель скрыта, посмотреть в меню программы. Поиск по меню в пункте Help работает на отлично.
Минусы тогл-подхода
Психологический барьер
Тебе придётся перешагнуть через серьёзный психологический барьер, научиться переназначать горячие клавиши и понять, что в этом нет никакого криминала. Это сложнее, чем кажется.
Придётся что-то настраивать, вместо того чтобы делать работу
Когда ты открываешь новую программу, первые 10 минут вместо работы тратишь на настройку. Впрочем, они окупятся.
Не хватит букв
Если нужно действительно много тогл-панелей в сложной программе, могут закончиться буквы. В этом случае придётся отойти от канонического Alt + Cmd и заменить его на Ctrl + Cmd, что нарушает стройную идиллию и слегка рушит мозг.
Что если в программе нельзя назначать горячие клавиши?
Значит, это хреновая программа. Найди хорошую. Либо напиши разработчикам, чтобы вынесли нужную функцию в основное меню. Часто независимые разработчики слушают пользователей. Если ты программист — напиши хорошую самостоятельно. Хватит это терпеть!
Что такое feature toggle или как избавиться от мучительных мёржей и долгоживущих веток?
Проблема
Представьте, что циклы разработки вашей команды длятся по две недели, а реализация новой фичи потребует от команды 3 месяца разработки. На первый взгляд, есть две возможные схемы действий:
Использование feature switcher-ов для решения проблем
Такая проблема встречается в разработке довольно часто и есть изящное решение, позволяющее взять лучшее от описанных выше подходов — feature toggle или feature switcher.
По сути, feature switcher — это boolean флаг, который хранится в базе данных и содержит информацию о том, должна быть включена та или иная фича или нет. Значение этого флага может быть извлечено из базы данных по ключу. Удобство использования feature switcher-ов заключается в том, что они могут быть легко изменены бизнес-пользователем во время runtime через панель администратора без необходимости заново деплоить приложение.
Ниже приведен пример использования feature toggle на языке Java:
В примере выше configurationManager — это класс, позволяющий извлечь значение определенного feature switcher-а из базы данных по его ключу.
Также, при помощи feature switcher-ов, можно отображать/скрывать определенные элементы на фронтенде. Для этого придется положить значение флага в Model и передать его на View как это показано ниже:
После чего использовать переданное значение для рендеринга того или иного HTML кода:
Виды feature switcher-ов
Описанный концепт использования feature switcher-ов — это лишь один возможный случай использования и такие feature switcher-ы называются release toggles. Всего выделяют 3 разных вида feature switcher-ов:
Проблемы использования feature toggle-ов
Поскольку я работаю на проекте, где активно используются feature toggle-ы, то кроме очевидных достоинств их использования я начал замечать и проблемы, связанные с ними:
Решения некоторых из описанных проблем
Помочь решить вышеописанные проблемы могут следующие действия:
Итоги
Feature switcher — очень простой и одновременно мощный механизм, позволяющий избегать монструозных коммитов, легко менять поведения приложения или собирать несколько разных приложений на одной кодовой базе, используя разную конфигурацию feature toggle-ов.
Однако, стоит также помнить, что этот паттерн разработки имеет некоторые недостатки, которые выливаются в трудночитаемый и трудно поддерживаемый код, поэтому следует избегать чрезмерного использования этого паттерна и периодически проводить документирование feature switcher-ов и их ревизию, чтобы удалять неиспользуемые и, как следствие, очищать проект от “мёртвого” кода.
Доступный toggle
Приглашаем всех желающих на открытый урок «CSS Reset — ненужный артефакт или спасательный круг». На этом вебинаре рассмотрим, зачем нам CSS Reset, что такое рендеринг и как браузер рендерит страницу.
Toggles (или их еще называют «тумблеры»/»переключатели») широко используются в современных интерфейсах. Они, как правило, относительно просты, и их можно рассматривать как простые флажки (checkbox). Тем не менее, их часто делают недоступными тем или иным способом.
В этой статье я покажу небольшую имплементацию доступного toggle на HTML + CSS, которую вы можете применить в своих проектах и доработать по своему усмотрению.
The toggle и дескриптор handle
Разметка
Стоит отметить, что это не единственный способ разметки такого компонента интерфейса. Например, вместо него можно использовать 2 radio inputs. Sara Soueidan более подробно рассказывает о проектировании и создании toggle.
Теперь нам понадобится немного больше. Чтобы не передавать статус флажка, полагаясь только на цвет (Критерий успеха WCAG 1.4.1 «Использование цвета»), мы собираемся использовать пару иконок.
Мы будем использовать небольшой контейнер между вводом данных и текстовой меткой, который будет содержать 2 иконки: галочку и крестик (взяты из иконок Material UI). Затем мы создадим toggle handle с псевдоэлементом, который будет охватывать одну из иконок за раз.
Следует отметить несколько моментов, связанных с нашей разметкой:
Мы используем aria-hidden=»true» для наших SVG, потому что они не должны обнаруживаться вспомогательными технологиями, так как являются сугубо декоративными.
Мы также используем focusable=»false» для наших SVG, чтобы избежать проблем с Internet Explorer, где SVG по умолчанию фокусируются.
Стили
Прежде чем мы углубимся в стилизацию, я хотел бы уточнить терминологию, чтобы было легче следить за развитием событий:
Контейнер
Давайте начнем с базовых стилей для нашего контейнера.
Toggle и handle
Переход здесь осуществляется таким образом, что handle плавно скользит из одной стороны в другую. Это может немного отвлекать или настораживать некоторых людей, поэтому рекомендуется отключить этот переход, когда включена функция reduced-motion (уменьшение движения). Это можно сделать с помощью следующего фрагмента:
Стили для фокуса
Мы вставили наш контейнер toggle после самого ввода, чтобы использовать комбинатор смежных сиблингов ( + )для стилизации toggle в зависимости от состояния ввода (проверен, сфокусирован, отключен. ).
Я заметил одну интересную вещь: при нажатии на родной флажок или его метку контур фокуса не появляется. Это происходит только при фокусировке флажка с помощью клавиатуры. Мы можем имитировать это поведение, удалив стили, которые мы только что применили, когда селектор :focus-visible не подходит.
Проверенное состояние
Затем нам нужно разобраться с проверенным состоянием. В этом случае мы хотим сделать две вещи: обновить цвет фона toggle с красного на зеленый и сдвинуть handle вправо, чтобы он закрыл крестик и показал галочку (100% собственной ширины).
Adrian Roselli справедливо заметил, что эта схема не учитывает возможное «смешанное» (или «неопределенное» состояние). Это справедливо для простоты, поскольку большинство флажков/тумблеров не нуждаются в таком состоянии, но его следует учитывать, когда это необходимо.
Отключенное состояние
Наконец, мы можем добавить несколько пользовательских стилей, чтобы сделать отключенный toggle более явным.
Поддержка право-лево
Иконки
Вариант кнопки
Adrian Roselli в своем материале о toggles предлагает дерево решений для выбора между флажком и кнопкой.
Затем нам нужно убедиться, что не похожа на саму кнопку. Для этого мы сбросим стили кнопки по умолчанию, включая контур фокуса, поскольку он применяется при toggle (переключении).
Затем нам нужно дополнить все наши селекторы, связанные с вводом, вариацией для выбора варианта кнопки.
Вот и все! Таким образом, мы можем использовать либо разметку флажка, либо разметку кнопки, в зависимости от того, что больше подходит для данной ситуации, и иметь одинаковые стили в обоих случаях. Очень удобно!
Заключение
Как видите, ничего особо сложного в этом нет, но все же есть над чем подумать. Вот чего мы добились:
Мы используем реальный элемент формы флажка, который мы стилизуем под toggle.
Он передает свой статус с помощью иконографии и цвета.
Он не оставляет артефактов, когда CSS недоступен.
Он имеет собственные стили по фокусу и может быть настроен.
У него есть отключенное состояние.
При необходимости он имеет поддержку право-лево.
Он должен быть относительно легко адаптирован к темному режиму при наличии некоторых глобальных пользовательских свойств.
Здорово! Не стесняйтесь играть с кодом на CodePen, и я надеюсь, что это поможет вам сделать ваши toggles доступными. А также, я рекомендую прочитать эти статьи, чтобы продвинуться дальше:
Toggle buttons от Heydon Pickering
Dion упоминает, что toggle может выглядеть наоборот, и это мнение поддерживает Rawrmonstar, а Mikael Kundert упоминает, что использование флажков обычно проще.