1088 lines
21 KiB

%fa-icon {
&::before {
@include fa-icon;
margin-right: $padding-small-vertical;
}
}
%fa-icon-after {
&::after {
display: inline-block;
margin-left: $padding-small-vertical;
font: normal normal normal 14px/1 FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
}
$icon-map: (
icon-add: $fa-var-plus-square,
icon-edit: $fa-var-pencil,
icon-copy: $fa-var-copy,
icon-duplicate: $fa-var-clipboard,
icon-del: $fa-var-trash,
icon-move: $fa-var-arrows,
icon-save: $fa-var-save,
icon-download: $fa-var-download,
icon-cancel: $fa-var-ban,
icon-multiple: $fa-var-plus-circle,
icon-folder: $fa-var-folder,
icon-package: $fa-var-cube,
icon-user: $fa-var-user,
icon-project: $fa-var-cube,
icon-projects: $fa-var-cubes,
icon-help: $fa-var-info-circle,
icon-attachment: $fa-var-paperclip,
icon-history: $fa-var-history,
icon-time-entry: $fa-var-clock-o,
icon-time: $fa-var-clock-o,
icon-time-add: $fa-var-clock-o,
icon-stats: $fa-var-line-chart,
icon-warning: $fa-var-warning,
icon-error: $fa-var-exclamation,
icon-fav: $fa-var-star,
icon-fav-off: $fa-var-star-o,
icon-heart: $fa-var-heart,
icon-heart-off: $fa-var-heart-o,
icon-reload: $fa-var-refresh,
icon-locked: $fa-var-lock,
icon-lock: $fa-var-lock,
icon-unlock: $fa-var-unlock,
icon-checked: $fa-var-check,
icon-details: $fa-var-search-plus,
icon-report: $fa-var-pie-chart,
icon-comments: $fa-var-comment,
icon-comment: $fa-var-comment,
icon-summary: $fa-var-file-text,
icon-server-authentication: $fa-var-key,
icon-issue: $fa-var-ticket,
icon-zoom-in: $fa-var-search-plus,
icon-zoom-out: $fa-var-search-minus,
icon-magnifier: $fa-var-search,
icon-passwd: $fa-var-key,
icon-arrow-right: $fa-var-arrow-right,
icon-test: $fa-var-arrow-circle-right,
icon-sticky: $fa-var-thumb-tack,
icon-email: $fa-var-envelope,
icon-email-disabled: $fa-var-envelope-o,
icon-email-add: $fa-var-envelope,
icon-ok: $fa-var-check,
icon-not-ok: $fa-var-times,
icon-link-break: $fa-var-chain-broken,
icon-list: $fa-var-list-ul,
icon-close: $fa-var-times-circle,
icon-settings: $fa-var-cog,
icon-group: $fa-var-users,
icon-groupnonmember: $fa-var-users,
icon-groupanonymous: $fa-var-users,
icon-roles: $fa-var-eye,
icon-issue-edit: $fa-var-edit,
icon-workflows: $fa-var-sitemap,
icon-custom-fields: $fa-var-edit,
icon-plugins: $fa-var-puzzle-piece,
icon-news: $fa-var-newspaper-o,
icon-issue-closed: $fa-var-ticket,
icon-issue-note: $fa-var-comment,
icon-changeset: $fa-var-upload,
icon-message: $fa-var-comment,
icon-reply: $fa-var-comment-o,
icon-wiki-page: $fa-var-file-text-o,
icon-document: $fa-var-file-text,
icon-add-bullet: $fa-var-plus-circle,
icon-shared: $fa-var-link,
icon-actions: $fa-var-ellipsis-h,
icon-sort-handle: $fa-var-arrows-v,
/* typo "expended" has to be kept for backwards compatibility */
icon-expended: $fa-var-chevron-down,
icon-expanded: $fa-var-chevron-down,
icon-collapsed: $fa-var-chevron-right,
icon-bookmark: $fa-var-bookmark,
icon-bookmark-off: $fa-var-bookmark-o,
icon-sorted-asc: $fa-var-sort-amount-asc,
icon-sorted-desc: $fa-var-sort-amount-desc,
icon-toggle-plus: $fa-var-plus-square,
icon-toggle-minus: $fa-var-minus-square,
icon-clear-query: $fa-var-times,
icon-import: $fa-var-cloud-upload,
icon-bookmarked-project: $fa-var-tag,
icon-copy-link: $fa-var-clipboard,
// Plugin icons
icon-call: $fa-var-phone,
icon-contact: $fa-var-vcard,
icon-erase: $fa-var-eraser,
icon-facebook: $fa-var-facebook-square,
icon-fullscreen: $fa-var-arrows-alt,
icon-linkedin: $fa-var-linkedin-square,
icon-meeting: $fa-var-calendar-check-o,
icon-merge: $fa-var-code-fork,
icon-money-dollar: $fa-var-usd,
icon-money-euro: $fa-var-eur,
icon-money-pound: $fa-var-gbp,
icon-money-yen: $fa-var-jpy,
icon-move-bottom: $fa-var-angle-double-down,
icon-move-down: $fa-var-angle-down,
icon-move-top: $fa-var-angle-double-up,
icon-move-up: $fa-var-angle-up,
icon-phone: $fa-var-phone,
icon-skype: $fa-var-skype,
icon-tags: $fa-var-tags,
icon-twitter: $fa-var-twitter-square,
icon-vcard: $fa-var-vcard,
banner-icon-edit: $fa-var-edit,
banner-icon-off: $fa-var-times,
);
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(359deg);
}
}
table.list .buttons > a::before {
font-size: $fa-font-size-base;
}
//== Buttons icons
//
.icon,
.icon-only:not(.toggle-multiselect) {
@extend %fa-icon;
padding-left: $icon-width;
background-repeat: no-repeat;
background-position: 0% 50%;
&::before {
margin-left: -$icon-width;
}
}
.icon-only {
display: inline-block;
width: 0;
overflow: hidden;
vertical-align: top;
white-space: nowrap;
&::before {
width: $icon-width;
text-align: center;
}
}
// A empty icon should behave more like icon-only
a.icon:empty {
display: inline-block;
}
span.icon + span.icon {
margin-left: $padding-small-vertical;
}
$icons-selector: ();
@each $class, $icon in $icon-map {
$icons-selector: append($icons-selector, unquote(".#{$class}"), "comma");
.#{$class} {
&::before {
content: $icon;
@if $class == "icon-fav" {
color: $orange;
} @else if $class == "icon-heart" {
color: $pink;
} @else if $class == "icon-bookmarked-project" {
color: $blue;
}
}
@if $class == "icon-close" {
&:hover::before {
content: $fa-var-times-circle-o;
}
} @else if $class == "icon-folder" {
.open &::before {
content: $fa-var-folder-open;
}
}
}
}
#{$icons-selector} {
&.icon {
background-image: none;
}
}
//== Checkbox toggler
//
a.toggle-checkboxes {
@extend %fa-icon;
&::before {
content: $fa-var-check-square-o;
}
}
//== Colorize some actions
//
a.icon,
a.icon-only {
@include link-variant(default);
}
.icon-checked {
@include link-variant(success, false);
}
a.icon-add,
a.icon-save,
a.icon-checked {
@include link-variant(success);
}
a.icon-del {
@include link-variant(danger);
}
//== File types
//
.icon-folder,
.icon-file {
&::before {
width: $icon-width;
text-align: center;
}
}
.icon-file {
&::before {
content: $fa-var-file-o;
color: $gray-700;
}
&.text-plain::before { content: $fa-var-file-text-o; }
&.text-x-c::before { content: $fa-var-file-code-o; }
&.text-x-csharp::before { content: $fa-var-file-code-o; }
&.text-x-java::before { content: $fa-var-file-code-o; }
&.text-x-php::before { content: $fa-var-file-code-o; }
&.text-x-ruby::before { content: $fa-var-file-code-o; }
&.text-xml::before { content: $fa-var-file-code-o; }
&.text-css::before { content: $fa-var-file-code-o; }
&.text-html::before { content: $fa-var-file-code-o; }
&.text-x-sh::before { content: $fa-var-file-text-o; }
&.application-javascript::before,
&.text-x-javascript::before { content: $fa-var-file-code-o; }
&.application-pdf::before { content: $fa-var-file-pdf-o; }
&.application-msword::before { content: $fa-var-file-word-o; }
&.application-vnd\.openxmlformats-officedocument\.spreadsheetml\.sheet::before,
&.application-vnd\.ms-excel::before { content: $fa-var-file-excel-o; }
&.image-vnd\.microsoft\.icon::before,
&.image-gif::before,
&.image-jpeg::before,
&.image-png::before,
&.image-tiff::before {
content: $fa-var-file-image-o;
}
&.application-zip::before,
&.application-x-gzip::before {
content: $fa-var-file-zip-o;
}
}
.icon-expended,
.icon-collapsed {
&::before {
text-align: center;
}
&.icon {
padding-left: $icon-width;
}
&.expander {
background-image: none;
}
}
.icon-zoom-in + .icon-zoom-out {
margin-left: $padding-small-vertical;
}
//== Administration menu sections
//
%admin-icon {
@extend %fa-icon;
&:hover::before {
color: $gray-900;
}
&.selected::before {
color: $gray-950;
}
}
#admin-menu {
#admin-index > & {
a {
padding-left: 5px + $icon-width;
}
}
li {
> a {
padding-left: $sidebar-padding-horizontal + 5px + $icon-width;
&::before {
display: inline-block;
width: $icon-width;
margin: 0;
margin-left: -(5px + $icon-width);
padding: 0;
color: $gray-700;
text-align: center;
}
}
}
.projects {
@extend %admin-icon;
&::before { content: $fa-var-cubes; }
}
.users {
@extend %admin-icon;
&::before { content: $fa-var-user; }
}
.groups {
@extend %admin-icon;
&::before { content: $fa-var-group; }
}
.roles {
@extend %admin-icon;
&::before { content: $fa-var-eye; }
}
.trackers {
@extend %admin-icon;
&::before { content: $fa-var-ticket; }
}
.issue-statuses,
.issue_statuses {
@extend %admin-icon;
&::before { content: $fa-var-pencil-square; }
}
.workflows {
@extend %admin-icon;
&::before { content: $fa-var-sitemap; }
}
.custom-fields,
.custom_fields {
@extend %admin-icon;
&::before { content: $fa-var-edit; }
}
.enumerations {
@extend %admin-icon;
&::before { content: $fa-var-list; }
}
.settings {
@extend %admin-icon;
&::before { content: $fa-var-gear; }
}
.plugins {
@extend %admin-icon;
&::before { content: $fa-var-puzzle-piece; }
}
.info {
@extend %admin-icon;
&::before { content: $fa-var-info-circle; }
}
.ldap-authentication,
.server_authentication {
@extend %admin-icon;
&::before { content: $fa-var-key; }
}
}
//== Drag-and-drop sorting
//
.sort-handle {
@extend %fa-icon;
text-align: center;
cursor: move;
&::before {
content: $fa-var-arrows-v;
}
&.ajax-loading {
&::before {
content: $fa-var-refresh;
animation: spin 1s linear infinite;
color: $gray-700;
}
}
}
//== Headers with icons
//
h3.icon,
h3.version,
h3.comments,
div.issues h3,
div.members h3,
div.news h3,
div.projects h3 {
@extend %fa-icon;
color: $gray-900;
&::before {
width: $icon-width;
margin-right: $padding-small-vertical;
transform: translateY(-.1em);
color: $gray-700;
text-align: center;
}
}
h3.version::before { content: $fa-var-cube; }
h3.comments::before { content: $fa-var-comments; }
div.issues h3::before { content: $fa-var-ticket; }
div.members h3::before { content: $fa-var-users; }
div.news h3::before { content: $fa-var-newspaper-o; }
div.projects h3::before { content: $fa-var-cubes; }
//== Activity types icons
//
dt {
&.issue,
&.issue-edit,
&.issue.closed,
&.issue-closed,
&.issue-note,
&.changeset,
&.news,
&.message,
&.reply,
&.wiki-page,
&.attachment,
&.document,
&.project,
&.time-entry {
@extend %fa-icon;
&::before {
margin-left: -$padding-side;
float: left;
line-height: $line-height-computed;
}
}
&.issue::before { content: $fa-var-ticket; }
&.issue-edit::before { content: $fa-var-edit; }
&.issue.closed::before { content: $fa-var-ticket; }
&.issue-closed::before { content: $fa-var-ticket; }
&.issue-note::before { content: $fa-var-comment; }
&.changeset::before { content: $fa-var-upload; }
&.news::before { content: $fa-var-newspaper-o; }
&.message::before { content: $fa-var-comment; }
&.reply::before { content: $fa-var-comment-o; }
&.wiki-page::before { content: $fa-var-file-text-o; }
&.attachment::before { content: $fa-var-paperclip; }
&.document::before { content: $fa-var-file-text; }
&.project::before { content: $fa-var-cube; }
&.time-entry::before { content: $fa-var-clock-o; }
}
//== Alternative icons
//
.search_for_watchers > a {
@extend %fa-icon;
@include icon-variant(success);
&::before {
content: $fa-var-plus;
}
img {
display: none;
}
}
.atom {
@extend %fa-icon;
&::before {
content: $fa-var-rss-square;
}
}
.issues .buttons a,
#related-issues li > a {
&[data-method="delete"] {
@extend %fa-icon;
&::before {
content: $fa-var-chain-broken;
}
img {
display: none;
}
}
}
#main a.close-icon {
@extend %fa-icon;
@include link-variant(danger);
width: auto;
height: auto;
background: transparent;
&::before {
content: $fa-var-remove;
}
}
a.project {
$svg-star: inline-svg("icon-star.svg", (path: (fill: $orange)));
$svg-tag: inline-svg("icon-tag.svg", (path: (fill: $blue)));
&.icon {
padding-left: 0;
&::before {
content: "";
display: none;
margin: 0;
}
}
&.my-project,
&.icon-user,
&.icon-bookmarked-project {
padding-right: $icon-width;
background-image: $svg-star;
background-repeat: no-repeat;
background-position: bottom .2em right 0, bottom .2em right $icon-width;
}
&.icon-bookmarked-project {
background-image: $svg-tag;
}
&.icon-user.icon-bookmarked-project {
padding-right: $icon-width * 2;
background-image: $svg-tag, $svg-star;
}
}
span.my-project {
@extend %fa-icon;
&::before {
content: $fa-var-star;
width: $icon-width;
margin-right: 0;
color: $orange;
text-align: center;
}
}
.sort {
@extend %fa-icon-after;
padding-left: 0;
&::before {
content: none;
}
&::after {
margin-left: .2em;
}
&.asc,
&.desc {
background-image: none;
}
&.asc::after {
content: $fa-var-sort-amount-asc;
}
&.desc::after {
content: $fa-var-sort-amount-desc;
}
.sort-by-id &,
.sort-by-done-ratio &,
.sort-by-estimated-hours &,
.sort-by-spent-hours & {
&.asc::after { content: $fa-var-sort-numeric-asc; }
&.desc::after { content: $fa-var-sort-numeric-desc; }
}
.sort-by-assigned-to &,
.sort-by-subject & {
&.asc::after { content: $fa-var-sort-alpha-asc; }
&.desc::after { content: $fa-var-sort-alpha-desc; }
}
}
a.remove-upload {
@extend %fa-icon;
@include link-variant(danger);
opacity: $icon-opacity;
text-align: center;
&:hover,
&:focus {
opacity: $icon-hover-opacity;
text-decoration: none;
}
&::before {
content: $fa-var-trash;
}
}
em.info.error {
@extend %fa-icon;
&::before {
content: $fa-var-exclamation-circle;
}
}
.message {
.contextual {
a {
@extend %fa-icon;
opacity: .7;
&:hover,
&:focus {
opacity: 1;
}
img {
display: none;
}
}
}
> .contextual {
a {
&:nth-child(1) {
&::before {
content: $fa-var-comment;
}
}
&:nth-child(2) {
&::before {
content: $fa-var-pencil;
}
}
&:nth-child(3) {
&::before {
content: $fa-var-trash;
}
}
}
}
}
tr.message {
&.locked td.subject,
&.sticky td.subject {
@extend %fa-icon;
}
&.locked {
color: $gray-700;
td.subject {
&::before {
content: $fa-var-lock;
}
}
}
&.sticky td.subject {
font-weight: $font-weight-bold;
&::before {
content: $fa-var-bookmark;
}
}
}
tr.version.shared td.name {
@extend %fa-icon;
&::before {
content: $fa-var-link;
}
}
table.boards {
a.board {
@extend %fa-icon;
&::before {
content: $fa-var-comments;
}
}
}
table.members {
td.group,
td.groupnonmember,
td.groupanonymous {
@extend %fa-icon;
&::before {
content: $fa-var-group;
}
}
}
div.wiki {
.external {
@extend %fa-icon;
&::before {
content: $fa-var-external-link;
display: inline;
margin-right: 3px;
font-size: 10px;
}
}
}
.contextual [href*="edit"] {
@extend %fa-icon;
&::before {
content: $fa-var-pencil;
}
img {
display: none;
}
}
#attach_files_link {
@extend %fa-icon;
&::before {
content: $fa-var-plus;
margin-right: .3em;
}
}
.other-formats {
%other-format {
@extend %fa-icon;
background-image: none;
&::before {
margin-right: .3em;
}
}
.pdf {
@extend %other-format;
&::before {
content: $fa-var-file-pdf-o;
}
}
.html {
@extend %other-format;
&::before {
content: $fa-var-file-code-o;
}
}
.txt {
@extend %other-format;
&::before {
content: $fa-var-file-text-o;
}
}
.csv {
@extend %other-format;
&::before {
content: $fa-var-file-excel-o;
}
}
.png {
@extend %other-format;
&::before {
content: $fa-var-file-image-o;
}
}
}
//== Hacks and overrides for Font Awesome
//
// Attachments and watchers delete icon
.attachments,
.watchers {
a.delete {
@extend %fa-icon;
@include icon-variant(danger);
&::before {
content: $fa-var-trash;
}
img {
display: none;
}
}
}
// Issue edit form icon
#all_attributes label[for="issue_description"] + a {
@extend %fa-icon;
&::before {
content: $fa-var-pencil;
}
.icon {
padding-left: 0;
&::before {
content: "";
margin: 0;
}
}
img {
display: none;
}
}
// Issue journal contextual icons
.journal .wiki .contextual {
> a {
@extend %fa-icon;
&::before {
width: $icon-width;
margin-right: 0;
text-align: center;
}
&:not([class*="icon"]) {
&::before {
content: $fa-var-comment;
}
&:nth-child(2) {
&::before {
content: $fa-var-pencil;
}
}
&:nth-child(3) {
&::before {
content: $fa-var-trash;
}
}
}
img {
display: none;
}
}
}
// Category and target vesion add icon
#issue_category_id + a,
#issue_fixed_version_id + a {
@extend %fa-icon;
@include icon-variant(success);
&::before {
content: $fa-var-plus-square;
}
img {
display: none;
}
}
// jQuery UI datepicker trigger button
img.ui-datepicker-trigger {
position: relative;
top: -1px;
box-sizing: border-box;
width: 14px;
height: 14px;
padding-left: 14px;
background-image: inline-svg("calendar.svg", (path: (fill: $btn-default-icon-color)));
background-repeat: no-repeat;
background-position: center center;
}
// Lists toggle checkbox icon
table.list th.checkbox > a {
@extend %fa-icon;
@include icon-variant(success);
&::before {
content: $fa-var-check;
margin-right: 0;
}
img {
display: none;
}
}
// Time entries list icons
.time-entry .buttons > a {
@extend %fa-icon;
&[href*="edit"]::before {
content: $fa-var-pencil;
}
&[data-method="delete"]::before {
content: $fa-var-trash;
}
img {
display: none;
}
}
// Files list
.file .buttons > a {
@extend %fa-icon;
&[data-method="delete"] {
@include icon-variant(danger);
&::before {
content: $fa-var-trash;
}
}
img {
display: none;
}
}
// Commit keywords
.delete-commit-keywords {
@extend %fa-icon;
@include icon-variant(danger);
font-size: $font-size-base;
&::before {
content: $fa-var-trash;
}
img {
display: none;
}
}
.add-commit-keywords {
@extend %fa-icon;
@include icon-variant(success);
font-size: $font-size-base;
&::before {
content: $fa-var-plus-square;
}
img {
display: none;
}
}