Compare commits

...

268 Commits

Author SHA1 Message Date
dependabot[bot]
314a3a9af0 Bump micromatch from 4.0.4 to 4.0.8
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.4 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.4...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-30 13:19:25 +00:00
Grzegorz Rajchman
8cece5570e build on node 20 (#271) 2023-11-20 13:23:24 +00:00
Grzegorz Rajchman
134960a957 Update dependencies 2023-11-20 13:03:21 +00:00
Grzegorz Rajchman
929227fbda Update changelog 2023-11-20 12:59:46 +00:00
Cyprien Devillez
89ace106b2 Fix calendar display with Redmine 5.1 (#270) 2023-11-20 12:52:34 +00:00
Sebastian Bockholt
bc5965aee3 Fix typo of expanded icon class (#266)
Co-authored-by: sbock <sebastian.bockholt@bevuta.com>
2023-10-11 12:03:25 +01:00
Grzegorz Rajchman
69821b6ee2 Release v2.16.0 2023-05-14 21:42:56 +01:00
Grzegorz Rajchman
50919b24db Merge pull request #262 from gagnieray/feature/fix-master
Batch of fixes
2023-05-14 21:40:01 +01:00
Guillaume AGNIERAY
7fb8542baf Update Github's workflow 2023-05-11 17:08:05 +02:00
Guillaume AGNIERAY
4cad934780 Make better use of explicit variables and mixins 2023-05-11 16:35:58 +02:00
Guillaume AGNIERAY
4d5350abcf Fix for the Redmine Recaptcha plugin 2023-03-27 11:15:07 +02:00
Guillaume AGNIERAY
ee5f7c953a Improve the Additional Tags plugin display 2023-03-23 22:24:13 +01:00
Guillaume AGNIERAY
9d2eed48f8 Fix for the Redmine Hearts plugin 2023-03-23 22:21:42 +01:00
Guillaume AGNIERAY
3275e1b9aa Improve the Redmine Dashboard plugin display 2023-03-23 17:39:51 +01:00
Guillaume AGNIERAY
b8758b4705 Box style on the Additionals plugin's dashboards 2023-03-23 13:14:55 +01:00
Guillaume AGNIERAY
431ab76b5b Fixes in fixed-layout and right-sidebar modes 2023-03-23 10:47:40 +01:00
Guillaume AGNIERAY
c80281367d Better fix context-menu position
Fixes #233, #242, #246
2023-03-23 10:43:31 +01:00
Guillaume AGNIERAY
a1f1307acc Fix blocks' drag an drop
Mainly on the Additionals plugin's dashboards, but also on "My page".
Fixes #222
2023-03-22 22:26:28 +01:00
Guillaume AGNIERAY
611472863d Fix the Redmine Impersonate plugin display
Add icon on button and improve message display
2023-03-22 19:33:54 +01:00
Guillaume AGNIERAY
46041bc868 Fix roadmap progress titles' display on mouse over
Fixes #245
2023-03-21 16:04:59 +01:00
Guillaume AGNIERAY
164909da8a Fix for the Additionals plugin
Fix the icon's position of the default dashboards
2023-03-21 13:40:33 +01:00
Guillaume AGNIERAY
188df5599e Add padding around gravatar in flyout-menu 2023-03-21 13:02:07 +01:00
Guillaume AGNIERAY
2e7e3ceb54 Fix context-menu position
Fixes #233, #242, #246
2023-03-21 12:54:43 +01:00
Guillaume AGNIERAY
cdbe0a187e Fix header background color on mobile
Fixes #253
2023-03-21 12:42:06 +01:00
mrliptontea
8e3bffc518 Release v2.15.0 2021-05-23 21:00:41 +01:00
Grzegorz Rajchman
24bfb52f7a Merge pull request #223 from mrliptontea/dependabot/npm_and_yarn/lodash-4.17.21
Bump lodash from 4.17.20 to 4.17.21
2021-05-23 20:56:59 +01:00
Grzegorz Rajchman
125e09a18c Merge branch 'master' into dependabot/npm_and_yarn/lodash-4.17.21 2021-05-23 20:56:22 +01:00
Grzegorz Rajchman
8c1e5a99a5 Merge pull request #228 from mrliptontea/ifad-fix-documents
Ifad fix documents
2021-05-23 20:54:35 +01:00
mrliptontea
4e1d1e05d8 Move and improve documents style 2021-05-23 20:52:09 +01:00
Marcello Barnaba
75b0b63b92 documents: add spacing between items 2021-05-23 20:50:39 +01:00
Grzegorz Rajchman
dbb04bea5c Merge pull request #227 from mrliptontea/update-for-redmine-four-two-one
Update styles for Redmine 4.2.1
2021-05-23 16:03:46 +01:00
mrliptontea
ea28de2898 Update styles for Redmine 4.2.1 2021-05-23 16:01:12 +01:00
dependabot[bot]
947464dd92 Bump lodash from 4.17.20 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-23 14:59:57 +00:00
Grzegorz Rajchman
95cb578d8f Merge pull request #226 from mrliptontea/update-versions
Update package versions
2021-05-23 15:59:02 +01:00
mrliptontea
41143cf15f Update package versions 2021-05-22 16:23:58 +01:00
mrliptontea
745962541b Release v2.14.0 2021-01-27 18:00:53 +00:00
Grzegorz Rajchman
665ff99d15 Merge pull request #220 from liaham/master
Fix sorting behavior on enumeration page
2021-01-27 17:58:26 +00:00
Liane Hampe
b823dda2d9 Fix sorting behavior layout independent
The respective css styling is moved out of the case distinction between
grid and flexbox layout to be indpendent of the layout choice.
2021-01-10 15:26:59 +01:00
Liane Hampe
bf14f9fa3c Fix sorting behavior on enumeration page
Sorting a list item on administration/enumerations page causes for the
tables at second and third position on the page an unexpected behavior
when trying to sort an element by drag & drop.

That is, the distance between the dragged element and its placeholder
increases that much that it was difficult to position the list item as
wished.
2021-01-10 15:03:55 +01:00
Grzegorz Rajchman
58c45cf28f Merge pull request #217 from mrliptontea/dependabot/npm_and_yarn/ini-1.3.7
Bump ini from 1.3.5 to 1.3.7
2020-12-12 12:35:41 +00:00
dependabot[bot]
0dc89601b4 Bump ini from 1.3.5 to 1.3.7
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-11 07:20:36 +00:00
Grzegorz Rajchman
df3bf34032 Merge pull request #213 from geekbrother/master
Increase top menu elements margin
2020-10-14 21:56:07 +01:00
Max Kalashnikov
acd262667a Fix margin between top menu elements. 2020-10-14 11:41:24 +03:00
Max Kalashnikov
052fdbc2cc Fixing top menu items margin. 2020-10-14 11:37:36 +03:00
Max Kalashnikov
3a541692fa Fix top menu list margins. 2020-10-14 11:32:06 +03:00
mrliptontea
d1684a8d99 Release v2.13.0 2020-09-26 14:00:33 +01:00
Grzegorz Rajchman
6bdbd2de8a Merge pull request #210 from mrliptontea/replace-node-sass-with-sass
Replace node-sass with sass
2020-09-26 13:57:59 +01:00
mrliptontea
9b9b3ca37e Test no various versions of Node.js 2020-09-26 13:55:40 +01:00
mrliptontea
c0fd6f355c Replace node-sass with sass
Fixes #208
2020-09-26 13:32:37 +01:00
Grzegorz Rajchman
8298f58ee0 Merge pull request #209 from mrliptontea/update-dependencies
Update dependencies
2020-09-20 18:21:28 +01:00
mrliptontea
77e10d6f3d Update dependencies 2020-09-20 18:16:42 +01:00
mrliptontea
2d41c73928 Release v2.12.1 2020-08-11 23:26:11 +01:00
mrliptontea
ac0fe3f164 Update dependencies 2020-08-11 23:22:24 +01:00
Grzegorz Rajchman
5ffef0b09b Merge pull request #205 from mrliptontea/issue-204/easy-wbs-plugin-missing-icons
Fix #204 missing context menu icons in Easy WBS plugin
2020-08-11 23:18:39 +01:00
mrliptontea
9ee2f1410e Fix #204 missing context menu icons in Easy WBS plugin 2020-08-11 23:10:13 +01:00
mrliptontea
2ef0ebd380 Release v2.12.0 2020-08-01 15:40:11 +01:00
Grzegorz Rajchman
fce7bcffd3 Merge pull request #203 from ifad/fix/wiki-pagination
fix pagination overlapping wiki content
2020-08-01 15:31:52 +01:00
Marcello Barnaba
32366f5679 fix pagination overlapping wiki content 2020-07-31 16:11:49 +02:00
Grzegorz Rajchman
13297491d0 Merge pull request #202 from mrliptontea/dependabot/npm_and_yarn/lodash-4.17.19
Bump lodash from 4.17.15 to 4.17.19
2020-07-16 19:57:45 +01:00
dependabot[bot]
6dc24b6911 Bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-16 00:39:13 +00:00
Grzegorz Rajchman
25e00a217d Merge pull request #200 from mrliptontea/issue-199-wrap-key-values
Fix #199 wrap key-values in issues list
2020-06-23 20:57:48 +01:00
mrliptontea
54d0136aa5 Fix #199 wrap key-values in issues list 2020-06-23 20:54:37 +01:00
mrliptontea
670830cf3e Use npm script for linters
lint-action doesn't work for forks
2020-06-15 21:00:20 +01:00
Grzegorz Rajchman
06ac7eff64 Merge pull request #197 from mrliptontea/issue-196
Fix text wrapping in issue list
2020-06-15 20:59:30 +01:00
mrliptontea
f87c391547 Fix text wrapping in issue list 2020-06-15 20:51:07 +01:00
mrliptontea
8bf71cf947 Replace lint badge 2020-06-14 15:04:26 +01:00
Grzegorz Rajchman
bfa2376653 Merge pull request #195 from mrliptontea/dependabot/npm_and_yarn/websocket-extensions-0.1.4
Bump websocket-extensions from 0.1.3 to 0.1.4
2020-06-14 15:01:33 +01:00
dependabot[bot]
cfec912d12 Bump websocket-extensions from 0.1.3 to 0.1.4
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-06 11:30:30 +00:00
Grzegorz Rajchman
8c26cacebc Merge pull request #194 from mrliptontea/updates
Updates
2020-05-25 22:35:06 +01:00
mrliptontea
71fb78a3b7 Add husky and lint-staged git hooks 2020-05-25 22:09:58 +01:00
mrliptontea
dfce2e0b13 Update workflow
- Bump checkout action to v2
- Run on pull_request and on push to branches
2020-05-24 16:02:47 +01:00
mrliptontea
491fde75bb Update packages 2020-05-24 16:01:52 +01:00
mrliptontea
5e671bb9b7 Release v2.11.0 2020-05-08 23:32:34 +01:00
Grzegorz Rajchman
604a00561b Merge pull request #190 from mrliptontea/redmineup-improvements
Bulk improvements
2020-05-08 23:31:01 +01:00
mrliptontea
1d5b42235e Add Redmine Banner styles 2020-05-08 23:28:42 +01:00
mrliptontea
2b492be04a RedmineUP improvements 2020-05-08 23:28:27 +01:00
mrliptontea
4245d5daf6 Add table icon to jstoolbar 2020-04-25 18:40:01 +01:00
mrliptontea
06e7e4fded Fix checkbox padding when table borders are enabled 2020-04-25 18:38:45 +01:00
mrliptontea
36000bd02c Restore $color-priorities 2020-04-25 18:35:37 +01:00
Grzegorz Rajchman
510a32ec41 Merge pull request #180 from mrliptontea/issue-179-full-screen-mode-issues
Fix #179 full screen mode issues
2020-04-14 21:14:50 +01:00
mrliptontea
80105407af Fix #179 full screen mode issues 2020-04-14 21:12:53 +01:00
Grzegorz Rajchman
6e9e834816 Merge pull request #178 from mrliptontea/issue-177-icon-lose-hover
Fix #177 change styling for icon-only buttons
2020-04-13 20:13:32 +01:00
mrliptontea
0d1daf1a22 Fix #177 change styling for icon-only buttons 2020-04-13 20:05:18 +01:00
mrliptontea
e7500035e3 Release v2.10.2 2020-04-09 15:37:37 +01:00
Grzegorz Rajchman
d3ed59dc9b Merge pull request #176 from mrliptontea/fix-175-target-note-edit
Fix target note cannot be edited
2020-04-09 09:21:58 +01:00
mrliptontea
edbe4feca8 Fix #175 target note cannot be edited 2020-04-09 09:20:38 +01:00
mrliptontea
942f23f2cb Release v2.10.1 2020-04-06 18:53:33 +01:00
Grzegorz Rajchman
3fc4660203 Merge pull request #163 from mrliptontea/issue-160-checklist-menu-hover
Fix #160 checklist plugin menu highlight color
2020-04-06 18:52:50 +01:00
mrliptontea
1fa4a87da7 Fix #160 checklist plugin menu highlight color 2020-04-06 18:49:52 +01:00
mrliptontea
07a08db560 Release v2.10.0 2020-04-05 22:17:14 +01:00
Grzegorz Rajchman
2eb5d83f59 Merge pull request #174 from mrliptontea/issues-169-170-171-172
* Fix #172 Collapsed/expended icons for completed versions.
* Fix #171 "Display" label in Gantt option.
* Fix #170 radio buttons in projects options.
* Fix #169 styles in the spent time tab.
* Change lightness of shades 50 and 950.
* Change loader styles.
* Change rouge syntax highlighter color scheme.
2020-04-05 22:15:01 +01:00
mrliptontea
1bdfab795a Change rouge syntax highlighter color scheme 2020-04-05 22:10:20 +01:00
mrliptontea
aa4c59a48c Fix some styling issues in Redmine 4.
* Fix #172 Collapsed/expended icons for completed versions.
* Fix #171 "Display" label in Gantt option.
* Fix #170 radio buttons in projects options.
* Fix #169 styles in the spent time tab.
* Change lightness of shades 50 and 950.
* Change loader styles.
2020-04-05 18:53:53 +01:00
Grzegorz Rajchman
aaddd2e10b Merge pull request #168 from mrliptontea/issues-148-150-dashboard-agile-plugins
Fix styling issues in Dashboard and Agile plugins
2020-03-28 13:10:05 +00:00
mrliptontea
5c14dbbf62 Simpler workflow trigger 2020-03-28 13:04:59 +00:00
mrliptontea
f8609cbbbb Fix styling issues in Dashboard and Agile plugins
- Fix #150 styling for query totals and expander in Agile plugin.
- Fix #148 full screen view for Dashboard plugin.
2020-03-28 13:01:29 +00:00
Grzegorz Rajchman
6443eba8c2 Merge pull request #166 from mrliptontea/issue-164-responsive-theme-not-applied
Fix #164 Apply responsive override more generally
2020-03-28 11:37:00 +00:00
mrliptontea
70c88722fb Fix #164 Apply responsive override more generally 2020-03-27 18:15:12 +00:00
Grzegorz Rajchman
4b10532cea Upgrade packages and improve linter action (#167) 2020-03-27 18:14:49 +00:00
Grzegorz Rajchman
77a9633984 Merge pull request #162 from mrliptontea/issue-159/long-text-wrapping
Fix #159 wrapping long text in issue attributes
2020-03-15 21:35:01 +00:00
mrliptontea
92e92e75b9 Fix #159 wrapping long text in issue attributes 2020-03-15 21:29:40 +00:00
Grzegorz Rajchman
e4c69d5d86 Merge pull request #161 from mrliptontea/dependabot/npm_and_yarn/acorn-7.1.1
Bump acorn from 7.1.0 to 7.1.1
2020-03-15 21:25:34 +00:00
dependabot[bot]
4d82879d90 Bump acorn from 7.1.0 to 7.1.1
Bumps [acorn](https://github.com/acornjs/acorn) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/7.1.0...7.1.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-03-13 21:27:39 +00:00
mrliptontea
a2b49b6ff1 Release v2.9.1 2020-02-22 14:55:25 +00:00
mrliptontea
205109ac30 Fix roadmap badge positioning 2020-02-22 14:54:33 +00:00
mrliptontea
e981dc4ec0 Merge branch '1resu-patch-1' 2020-02-22 14:45:55 +00:00
mrliptontea
955aca022e Build updated JS 2020-02-22 14:41:40 +00:00
1resu
164391c6c2 Fix url.indexOf is Not a Function Error
The sidebar toogler isn't working with newer jquery versions (https://jquery.com/upgrade-guide/3.0/#breaking-change-load-unload-and-error-removed)
2020-02-20 22:20:12 +01:00
mrliptontea
e5b9b5fdf9 Release v2.9.0 2020-01-30 21:14:20 +00:00
Grzegorz Rajchman
e7e68125b3 Merge pull request #154 from mrliptontea/resolve-issues
Resolve issues
2020-01-30 20:59:03 +00:00
mrliptontea
57a60673a7 Resolve issues
* Fixed #141: improved styling for issue edit form.
* Fixed #142: TOC assumes `left` by default, also added new variables to control how it looks.
* Fixed #143: `$main-menu-bg-hover` is now being used.
* Resolved #144: added `$main-menu-bg-active` variable.
* Resolved #145: added `$table-list-header-bg` variable.
* Fixed #147: corrected forum edit attached files icon.
* Fixed #153: improved styling for `label.block`.
2020-01-30 20:55:46 +00:00
mrliptontea
136cf02394 Update dependencies 2020-01-28 20:20:28 +00:00
mrliptontea
9f7d02e511 Update badges 2019-08-13 23:04:19 +01:00
Grzegorz Rajchman
6b64af35a5 Merge pull request #137 from mrliptontea/actions
Set up actions
2019-08-13 22:46:28 +01:00
mrliptontea
e716b92e67 Set up actions 2019-08-13 22:42:48 +01:00
mrliptontea
9418139adb Release v2.8.0 2019-08-13 22:09:07 +01:00
mrliptontea
ca3ead0abf Update README 2019-08-13 22:07:47 +01:00
Grzegorz Rajchman
7745e4b617 Merge pull request #136 from two-pack/fixes_pos_pagination
Invalid position of pagination with large image attachment
2019-08-13 22:05:03 +01:00
two-pack
1207548232 Fixes lint errors. 2019-08-13 09:30:52 +09:00
two-pack
9f451017c5 Fixes position of pagination with large image attachment. 2019-08-13 09:03:50 +09:00
mrliptontea
a28d215f31 Update package-lock.json
Also, delete accidentally commited yarn.lock
2019-08-11 19:50:13 +01:00
mrliptontea
22ec5e09f5 Ignore no-prototype-builtins rule where not applicable 2019-08-10 18:29:41 +01:00
mrliptontea
9371b797b3 Update browserlist config 2019-08-06 23:16:29 +01:00
mrliptontea
924a5a94ed Update dependencies 2019-08-06 23:11:03 +01:00
mrliptontea
53fffa3b5c Update build badge 2019-08-06 23:08:43 +01:00
mrliptontea
42e5ce1217 Fix spacing for headers on roadmap pages
Resolves #132
2019-08-06 23:08:04 +01:00
mrliptontea
fc5b48aabe Release v2.7.0 2019-06-13 20:51:48 +01:00
Grzegorz Rajchman
5e04839cfd Merge pull request #126 from mrliptontea/issue-124/support-issue-id-plugin
Support issue-id plugin
2019-06-13 20:41:51 +01:00
mrliptontea
ad138b9331 Support issue-id plugin
Resolves #124
http://projects.andriylesyuk.com/project/redmine/issue-id
2019-06-13 20:36:12 +01:00
mrliptontea
6a78cb45c1 Release v2.6.0 2019-06-13 00:04:08 +01:00
Grzegorz Rajchman
b14206a585 Merge pull request #122 from mrliptontea/issue-121/support-redmine_wiki_page_tree-plugin
Add support for redmine_wiki_page_tree plugin
2019-06-13 00:03:40 +01:00
mrliptontea
a1d18834d3 Add support for redmine_wiki_page_tree plugin
Resolves #121
2019-06-13 00:01:01 +01:00
mrliptontea
df3e0fb696 Release v2.5.0 2019-06-05 20:54:41 +01:00
Grzegorz Rajchman
d17f4d2542 Merge pull request #119 from mrliptontea/issues/117-118-responsive-layout-fixes
Improvements for responsive layout
2019-06-05 20:52:47 +01:00
mrliptontea
51ba1deb36 Improvements for responsive layout 2019-06-05 20:49:27 +01:00
mrliptontea
b5d02128f5 Release v2.4.0 2019-06-02 21:43:35 +01:00
Grzegorz Rajchman
aa8738c749 Merge pull request #116 from mrliptontea/sync-with-default-theme
Bring up to speed with the default theme
2019-06-02 21:41:03 +01:00
mrliptontea
0282ba6695 Bring up to speed with the default theme 2019-06-02 21:38:42 +01:00
mrliptontea
0c4be053dc Release v2.3.1 2019-05-21 20:10:40 +01:00
Grzegorz Rajchman
319f97d468 Merge pull request #113 from mrliptontea/issue-112/diff-colors
Improve the color contrast in text diffs
2019-05-21 20:09:08 +01:00
mrliptontea
7bbdb230a8 Improve the color contrast in text diffs 2019-05-21 20:01:26 +01:00
mrliptontea
dd23f453e5 Release v2.3.0 2019-05-09 22:33:54 +01:00
Grzegorz Rajchman
8a8551b821 Merge pull request #108 from mrliptontea/issue-107/nested-lis
Issue 107/nested lis
2019-05-09 22:31:27 +01:00
mrliptontea
1ce3d3121f Merge branch 'master' into issue-107/nested-lis 2019-05-09 22:11:23 +01:00
Grzegorz Rajchman
3b9128bf1b Merge pull request #109 from mrliptontea/stylelint
Use stylelint
2019-05-09 22:08:44 +01:00
mrliptontea
a2e8955488 Use stylelint 2019-05-09 22:05:30 +01:00
mrliptontea
759d8424b9 Support lists in the sidebar via additionals plugin 2019-05-09 20:35:07 +01:00
mrliptontea
d365120f67 Support pages hierarchy list in the sidebar and main content
Resolves #107
2019-05-09 20:01:48 +01:00
mrliptontea
2ababdc027 Release v2.2.0 2019-04-09 22:37:10 +01:00
Grzegorz Rajchman
f60eac82e3 Merge pull request #104 from mrliptontea/resolve-tooltip-positioning-issues
Resolve tooltip positioning issues
2019-04-09 22:36:07 +01:00
mrliptontea
e68f8a1aa3 Remove margin from paragraphs in tables
That's what Redmine's default theme does.
2019-04-09 22:27:47 +01:00
mrliptontea
0bb9a27140 Fix tooltip positioning on gantt chart and agile board
Resolves #101, #102
2019-04-09 22:18:05 +01:00
mrliptontea
15368c666e Version 2.1.1 2019-03-23 00:00:32 +00:00
Grzegorz Rajchman
9f1a1bf3eb Merge pull request #99 from mrliptontea/fix-sidebar-toggler-in-fixed-layout
Fix sidebar toggler in fixed layout
2019-03-22 23:58:38 +00:00
mrliptontea
97502b8372 Fix contextual dropdown padding in mobile view 2019-03-22 23:54:37 +00:00
mrliptontea
aa985c34c6 Merge branch 'v1.x' into fix-sidebar-toggler-in-fixed-layout 2019-03-22 23:48:16 +00:00
mrliptontea
c4f2ccff3f Fix sidebar toggle style with fixed layout enabled 2019-03-22 23:36:10 +00:00
Grzegorz Rajchman
0a44774774 Merge pull request #98 from mrliptontea/backport-v2-fixes-to-v1.x
Backport v2 fixes to v1.x
2019-03-22 23:27:35 +00:00
mrliptontea
ba9ef9be21 Version 1.11.0 2019-03-22 23:23:29 +00:00
mrliptontea
f1df7d1e29 Backport fixes from v2
- Fix #89: RM+ custom menu breaking the layout
- Fix #90: regression in some sidebar layouts
- Fix #93: Agile chart expanding indefinitely when Additional "Go to top" link is enabled
- Fix #94: subtasks indentation
- Fix styling of some flash messages
- Fix horizontal scrollbar appearing when sidebar is on the right
- Fix footer being mispositioned in Agile charts
- Fix positioning of admin menu icons for some plugins
- Improve support for Redmine Tags plugin
- Add separator line between news on the news list
- Improve Redmine 4.0 compatibility
- Update Font Awesome icons to 4.7.0
2019-03-22 23:22:36 +00:00
mrliptontea
a9160256cf Release v2.1.0 2019-03-22 21:23:53 +00:00
Grzegorz Rajchman
672c1b45a2 Merge pull request #97 from mrliptontea/improvements
Add a few improvements
2019-03-22 21:23:05 +00:00
mrliptontea
e3e194bb95 Add a few improvements
- Improve progress bar styling
- Improve avatar positioning
- Improve WYSIWYG button styling
- Make wiki preview font sizes consistent with presentation
2019-03-22 21:17:40 +00:00
Grzegorz Rajchman
91eb640575 Merge pull request #95 from mrliptontea/issue-94-subtasks-formatting-is-off
Improve hierarchy list indentation
2019-03-22 19:16:37 +00:00
mrliptontea
06df2c2740 Merge branch 'master' into issue-94-subtasks-formatting-is-off 2019-03-22 19:13:32 +00:00
Grzegorz Rajchman
64c6f7707d Merge pull request #96 from mrliptontea/issue-93-agile-chart-endlessly-expanding
Add a hack to stop Agile chart from expanding forever
2019-03-22 19:12:30 +00:00
mrliptontea
ccdb344082 Add a hack to stop Agile chart from expanding forever
Page layout on Agile charts is broken, and with "Go to top" link
from https://github.com/alphanodes/additionals plugin enabled
the chart expands and resize event is triggered indefinitely.

Fixes #93
2019-03-21 22:36:55 +00:00
mrliptontea
3d8aeb0e7d Improve hierarchy list indentation
Fixes #94
2019-03-21 21:01:10 +00:00
mrliptontea
b8a1dcc913 Improvements
- Add CSS grid layout support (off by default because of IE support)
- Fix styling of some flash messages
- Fix horizontal scrollbar appearing when sidebar is on the right
- Fix footer being mispositioned in Agile charts
- Improve support for [Redmine Tags](https://www.redmineup.com/pages/plugins/tags) plugin
- Fix positioning of admin menu icons for some plugins
- Add separator line between news on the news list
2019-03-21 00:09:38 +00:00
mrliptontea
5cf3d1f645 Release v2.0.2 2019-03-20 20:25:40 +00:00
Grzegorz Rajchman
8bdf41aa9a Merge pull request #92 from mrliptontea/issue-89-custom-menu-plugin-breaks-layout
Fix top menu layout with custom_menu plugin
2019-03-20 20:25:08 +00:00
mrliptontea
97b68972f7 Fix top menu layout with custom_menu plugin
Fixes #89
2019-03-19 23:59:11 +00:00
Grzegorz Rajchman
d429f35dfc Merge pull request #91 from mrliptontea/issue-90-misaligned-delete-icon-in-watchers-list
Resolve regression in sidebar layouts
2019-03-18 22:20:05 +00:00
mrliptontea
8dab6dc92b Remove reduntant abbr style 2019-03-18 22:13:37 +00:00
mrliptontea
25ba736e7d Resolve regression in sidebar layouts
Fixes #90
2019-03-17 22:40:26 +00:00
Grzegorz Rajchman
99ad2c5213 Merge pull request #87 from mrliptontea/v2.0
Version 2.0
2019-03-13 22:37:17 +00:00
mrliptontea
0ec8791d41 Version 2.0 2019-03-13 22:26:25 +00:00
mrliptontea
b79991966a Add support for redmine_hearts plugin
Fixes #86
2019-03-12 22:16:09 +00:00
mrliptontea
9147b61324 Update readme for release v1.9.0 2019-03-01 18:47:46 +00:00
mrliptontea
f5805c2ad3 Merge branch 'taqueci-redmine-4.0' 2019-02-24 17:33:00 +00:00
mrliptontea
30e88ca836 Update dependencies 2019-02-24 15:33:20 +00:00
mrliptontea
ddabd865d7 Add note about fixing editor tabs layout 2019-02-24 15:16:09 +00:00
mrliptontea
d8dee5ccb2 Improve new Edit/Preview tab layout 2019-02-24 15:14:01 +00:00
mrliptontea
73d1210a00 Unify text contextual action icon's appearance 2019-02-24 13:42:12 +00:00
Takeshi Nakamura
e1563a6f9c Update application.css 2018-12-15 22:30:13 +09:00
Takeshi Nakamura
73a1f06136 Wiki toolbar implemented by issue 27758 2018-12-11 23:15:37 +09:00
Takeshi Nakamura
6f0d97fa6e Journal action links implemented by r16900 2018-12-11 23:08:17 +09:00
Takeshi Nakamura
230383dd2a Syntax highlighter Rouge implemented by issue 24681 2018-12-11 23:05:05 +09:00
Grzegorz Rajchman
bc6e2fefb1 Merge pull request #82 from mrliptontea/81-checkboxes-missing-on-firefox
Fix checkboxes missing on firefox
2018-09-29 17:10:25 +01:00
mrliptontea
3e80d292f4 Add some space below search form 2018-09-29 17:06:37 +01:00
mrliptontea
6d1346064e Fix #81 missing top checkboxes on Firefox
- Use position: absolute on inputs instead of float
- Unify mixins to check for checkboxes and radioes
- Improve checkbox layout in few places
2018-09-29 17:04:44 +01:00
Grzegorz Rajchman
0ae6e4bb59 Merge pull request #79 from mrliptontea/issue-78-files-not-visible-on-wiki
Fix attachments form layout and extend collapsible
2018-06-14 21:48:40 +01:00
mrliptontea
da33ec44f3 Fix attachments form layout and extend collapsible 2018-06-14 21:40:10 +01:00
Grzegorz Rajchman
3e84cfd613 Merge pull request #77 from mrliptontea/update-packages
Update dependencies
2018-05-14 22:05:19 +01:00
mrliptontea
2d77cba782 Update dependencies 2018-05-14 21:02:53 +01:00
Grzegorz Rajchman
077b0e3ac1 Merge pull request #76 from mrliptontea/add-romanian-and-french-translations
Add Romanian & French translation support.

Cherry-picked from #72
2018-05-14 20:46:00 +01:00
Mihai Kelemen
e8687dfc7f Add Romanian & French translation support 2018-05-14 20:41:46 +01:00
Grzegorz Rajchman
aec8502225 Merge pull request #75 from mrliptontea/update-screenshots
Update screenshots
2018-05-12 00:19:45 +01:00
mrliptontea
75b8ab6143 Update screenshots 2018-05-12 00:17:49 +01:00
Grzegorz Rajchman
b0842d06d1 Merge pull request #74 from mrliptontea/update-packages
Spring cleaning
2018-05-11 22:41:55 +01:00
mrliptontea
7859024c18 Update screenshots 2018-05-11 22:38:23 +01:00
mrliptontea
b81b76a306 Up the node version in travis 2018-05-11 22:04:35 +01:00
mrliptontea
e0211daf24 Update dependencies 2018-05-11 22:02:47 +01:00
Grzegorz Rajchman
8a1ca0915d Merge pull request #70 from mrliptontea/issue-69/remember-me-checkbox-layout
Fix "remember me" checkbox layout on login page, fixes #69
2017-09-14 21:41:29 +01:00
mrliptontea
d65d26f26f Fix "remember me" checkbox layout on login page, fixes #69 2017-09-14 21:38:08 +01:00
Grzegorz Rajchman
5c34a08c7f Merge pull request #68 from mrliptontea/issue-51-narrow-dropdown-in-top-menu
Disallow wrapping text in the top menu, fixes #51
2017-09-05 23:03:53 +01:00
mrliptontea
37d408cdb6 Disallow wrapping text in the top menu, fixes #51 2017-09-05 23:00:12 +01:00
mrliptontea
442596d0d0 Quick fix for regression introduced in #67 2017-09-05 22:49:03 +01:00
Grzegorz Rajchman
564d0bf3ba Merge pull request #67 from mrliptontea/issue-52-invisible-icon-only-button
Avoid applying styles for icon-only links in sidebar, fixes #52
2017-09-05 22:42:31 +01:00
mrliptontea
3231825dc0 Update readme 2017-09-05 22:42:04 +01:00
mrliptontea
252d28c4cb Avoid applying styles for icon-only links in sidebar, fixes #52 2017-09-05 22:37:22 +01:00
Grzegorz Rajchman
a44432e1ab Merge pull request #66 from mrliptontea/issue-50-invisible-printed-content-in-firefox
Improve print styles
2017-09-05 22:35:05 +01:00
mrliptontea
dbdcbce6a4 Fix issue with printed content in Firefox, fixes #50 2017-09-05 22:23:51 +01:00
mrliptontea
e4821cf03e Enforce correct padding for modal window's content 2017-09-05 21:47:33 +01:00
mrliptontea
9204d2263b Indent table cells with icons 2017-09-05 21:40:40 +01:00
mrliptontea
b4eb58bc77 Make 'Add filter' button wrap correctly on smaller screens 2017-09-05 21:37:04 +01:00
mrliptontea
4a5ec23be5 Fix layout of .query-columns in the latest Redmine 2017-09-05 21:34:02 +01:00
Grzegorz Rajchman
db2ae70ba1 Merge pull request #65 from mrliptontea/issue-54-max-height-for-list-field
Make list fields scrollable, fixes #54
2017-09-05 21:21:57 +01:00
mrliptontea
356e70ece0 Update readme 2017-09-05 21:21:25 +01:00
mrliptontea
493bed0468 Fix layout of checkbox list in administration forms 2017-09-05 21:15:11 +01:00
mrliptontea
7dbbaab953 Unify styles for checkbox/radio lists 2017-09-05 21:01:05 +01:00
mrliptontea
8e5378b65b Display custom list field as scrollable list, fixes #54 2017-09-03 22:55:03 +01:00
Grzegorz Rajchman
1abd5d2c59 Merge pull request #64 from mrliptontea/issue-62-anchors-wont-scroll-the-page
Remove styles for empty anchors in wiki, fixes #62
2017-09-03 13:27:24 +01:00
mrliptontea
c595f5b66f Remove styles for empty anchors in wiki, fixes #62 2017-09-03 13:20:38 +01:00
mrliptontea
f572a55b7c Add package-lock.json 2017-09-03 13:11:52 +01:00
Grzegorz Rajchman
b890e3f487 Merge pull request #63 from mrliptontea/ci-linting
Merge CI linting
2017-07-12 22:46:44 +01:00
mrliptontea
87ce84718d Unflatten some badges 2017-07-12 22:44:27 +01:00
mrliptontea
e1defa3677 Add build status badge 2017-07-12 22:41:47 +01:00
mrliptontea
2103d1e3b3 Fix linter errors 2017-07-12 22:32:24 +01:00
mrliptontea
93f4c4e6fb Add travis-ci config 2017-07-12 22:05:33 +01:00
mrliptontea
ea57a72909 Remove jshint config 2017-07-12 22:05:20 +01:00
Grzegorz Rajchman
13db2d80bd Merge pull request #61 from taqueci/redmine-3.4
Redmine 3.4
2017-07-12 21:14:01 +01:00
Takeshi Nakamura
ebcbd49e18 Update application.css and theme.js 2017-07-09 12:48:07 +09:00
Takeshi Nakamura
81e59e52ca Fix download icon 2017-07-09 12:39:22 +09:00
Takeshi Nakamura
1200c42714 Add padding of description and last comment in the issue list 2017-07-02 11:13:40 +09:00
Takeshi Nakamura
d03e35edc6 Last updated by colum in issue list (Redmine issue 6375) 2017-07-02 11:13:40 +09:00
Takeshi Nakamura
fb4c70319a Use css pseudo-classes instead of cycle("odd", "even") (Redmine issue 15361) 2017-07-02 11:13:40 +09:00
Takeshi Nakamura
588b2fe358 View attachments on the issue list (Redmine issue 25515) 2017-07-02 11:13:40 +09:00
Takeshi Nakamura
2c93df1543 Show last comment/notes in the issue list (Redmine issue 1474) 2017-07-02 11:13:40 +09:00
Takeshi Nakamura
e6a238fbd9 Fix misalignment of context menu 2017-07-02 11:13:40 +09:00
Takeshi Nakamura
19d2a2dfa3 View repository content by default (instead of the history) (Redmine issue 25999) 2017-07-02 11:13:40 +09:00
Takeshi Nakamura
97ecaf66c2 In place editing of "My page" layout (Redmine issue 25297) 2017-07-02 11:13:40 +09:00
Takeshi Nakamura
6b6c0cc565 Use css pseudo-classes instead of cycle("odd", "even") (Redmine issue 15361) 2017-07-02 11:13:40 +09:00
Takeshi Nakamura
02703bfefd Show assignee's icon in addition to author's icon (Redmine issue 25775) 2017-07-02 11:13:40 +09:00
Takeshi Nakamura
194a114684 Add .icon-email-add 2017-07-02 11:13:40 +09:00
Grzegorz Rajchman
399b5abeb9 Merge pull request #59 from taqueci/bugfix
Wrong jQuery ui-icons path
2017-05-26 16:39:30 +01:00
Grzegorz Rajchman
562da0a2ca Merge pull request #58 from taqueci/feature-ja
Japanese translation
2017-05-26 16:39:18 +01:00
Takeshi Nakamura
aba098b4cd Fix jQuery ui-icons path 2017-05-26 23:57:44 +09:00
Takeshi Nakamura
cc2e245b62 Fix jQuery ui-icons path 2017-05-26 23:54:29 +09:00
Takeshi Nakamura
35c4fce150 Merge commit 'd19768c' into bugfix 2017-05-26 23:51:53 +09:00
Takeshi Nakamura
51435b6d5e Add Japanese translation 2017-05-26 21:34:51 +09:00
taqueci
d19768cfcc Wrong h4 heading in issue note (#57)
* Fix h4 heading in issue note
2017-05-25 15:48:53 +01:00
Takeshi Nakamura
6423b32ce3 Fix h4 heading in issue note 2017-05-25 23:09:52 +09:00
Takeshi Nakamura
2464deb302 Fix jQuery ui-icon path 2017-05-25 22:14:39 +09:00
Takeshi Nakamura
9aefe05b3c Fix h4 heading in issue note 2017-05-24 21:46:45 +09:00
mrliptontea
61f9ee4af7 Build German translations and update changelog 2017-03-19 14:26:39 +00:00
Grzegorz Rajchman
12bbf11fde Merge pull request #49 from TumTum/translate-german
Add german translations
2017-03-19 14:25:04 +00:00
Tobias Matthaiou
5fe948f289 Translate in german. 2017-03-14 21:12:24 +01:00
mrliptontea
707c5409df Adjust width of the label column on the login form, fixes #44 2017-02-26 14:34:03 +00:00
mrliptontea
994410fd89 Add styles for project tile layout 2017-02-12 21:10:37 +00:00
mrliptontea
cb78f07e84 Improve styles for custom flash messages 2017-02-12 20:46:28 +00:00
mrliptontea
3d8889b28c Add support for responsive styles and new project selector 2017-02-12 19:50:11 +00:00
Grzegorz Rajchman
22fea49006 Merge pull request #43 from milouse/master
Fixes for version 3.3.2
2017-02-12 19:40:23 +00:00
Étienne Deparis
5265818398 New compiled version 2017-02-11 01:01:48 +01:00
Étienne Deparis
edec47580e Fix new jump to project block 2017-02-11 00:52:49 +01:00
Étienne Deparis
ea428cbc36 Fix login form 2017-02-11 00:52:49 +01:00
Étienne Deparis
809bb8cc4a Fix icons in #admin-menu 2017-02-11 00:39:15 +01:00
mrliptontea
43da9dc45c Force icon-only and tabs styles with higher specificity, fix #42 2017-01-19 20:57:32 +00:00
117 changed files with 23803 additions and 4190 deletions

10
.eslintrc.js Normal file
View File

@@ -0,0 +1,10 @@
module.exports = {
"extends": "standard",
"globals": {
"$": "readonly",
"localStorage": "readonly",
},
"ignorePatterns": [
"/javascripts/",
],
};

52
.github/workflows/lint.yml vendored Normal file
View File

@@ -0,0 +1,52 @@
name: Run linters
on:
push:
branches:
- 'master'
- 'v*.*'
pull_request:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 16.x
- name: Install npm dependencies
run: npm ci
- name: Eslint
run: npm run lint:js
- name: Stylelint
run: npm run lint:sass
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x, 18.x, 20.x]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install npm dependencies
run: npm ci --production
- name: Check build
run: npm run build

1
.gitignore vendored
View File

@@ -3,3 +3,4 @@
/src/sass/_custom-variables.scss
/.sublime-grunt.cache
/images/logo
/.stylelintcache

View File

@@ -1,23 +0,0 @@
{
"camelcase" : true,
"curly" : true,
"eqeqeq" : true,
"forin" : true,
"indent" : 4,
"latedef" : true,
"newcap" : true,
"nonew" : false,
"quotmark" : "double",
"undef" : true,
"unused" : true,
"strict" : true,
"maxparams" : 3,
"maxdepth" : 3,
"maxstatements": 16,
"maxlen" : 80,
"shadow" : false,
"browser" : true,
"jquery" : true,
"globals" : {
}
}

12
.lintstagedrc.js Normal file
View File

@@ -0,0 +1,12 @@
module.exports = {
"src/**/*.js": files => [
`eslint "${files.join('" "')}"`,
'grunt js',
'git add javascripts/'
],
"src/**/*.scss": files => [
`stylelint "${files.join('" "')}"`,
'grunt css',
'git add stylesheets/ plugins/'
],
}

View File

@@ -1,178 +0,0 @@
scss_files: "src/sass/**/*.scss"
exclude: 'src/sass/lib/**'
linters:
BangFormat:
enabled: true
space_before_bang: true
space_after_bang: false
BorderZero:
enabled: true
ColorKeyword:
enabled: true
ColorVariable:
enabled: false
Comment:
enabled: true
DebugStatement:
enabled: true
DeclarationOrder:
enabled: true
DuplicateProperty:
enabled: true
ignore_consecutive:
- word-break
ElsePlacement:
enabled: true
EmptyLineBetweenBlocks:
enabled: true
ignore_single_line_blocks: true
EmptyRule:
enabled: true
FinalNewline:
enabled: true
present: true
HexLength:
enabled: true
style: short
HexNotation:
enabled: true
style: lowercase
HexValidation:
enabled: true
IdSelector:
enabled: false
ImportantRule:
enabled: true
ImportPath:
enabled: true
leading_underscore: false
filename_extension: false
Indentation:
enabled: true
character: space
width: 2
LeadingZero:
enabled: true
style: exclude_zero
MergeableSelector:
enabled: false
NestingDepth:
enabled: true
max_depth: 6
PlaceholderInExtend:
enabled: true
PropertySortOrder:
enabled: true
order: smacss
ignore_unspecified: true
PropertySpelling:
enabled: true
extra_properties: []
PseudoElement:
enabled: true
QualifyingElement:
enabled: false
SelectorDepth:
enabled: true
max_depth: 5
SelectorFormat:
enabled: false
Shorthand:
enabled: true
SingleLinePerProperty:
enabled: true
allow_single_line_rule_sets: true
SingleLinePerSelector:
enabled: true
SpaceAfterComma:
enabled: true
SpaceAfterPropertyColon:
enabled: true
style: at_least_one_space
SpaceAfterPropertyName:
enabled: true
SpaceAfterVariableName:
enabled: true
SpaceAroundOperator:
enabled: true
SpaceBeforeBrace:
enabled: true
style: space
allow_single_line_padding: true
SpaceBetweenParens:
enabled: true
spaces: 0
StringQuotes:
enabled: true
style: double_quotes
TrailingSemicolon:
enabled: true
TrailingWhitespace:
enabled: true
TrailingZero:
enabled: true
TransitionAll:
enabled: true
UnnecessaryMantissa:
enabled: true
UnnecessaryParentReference:
enabled: true
UrlFormat:
enabled: true
UrlQuotes:
enabled: true
VendorPrefix:
enabled: true
ZeroUnit:
enabled: true

498
.stylelintrc.js Normal file
View File

@@ -0,0 +1,498 @@
module.exports = {
'ignoreFiles': [
'src/sass/lib/**'
],
'plugins': [
'stylelint-order',
'stylelint-scss'
],
'rules': {
'at-rule-name-case': 'lower',
'at-rule-name-space-after': 'always-single-line',
'at-rule-no-vendor-prefix': true,
'at-rule-semicolon-newline-after': 'always',
'at-rule-semicolon-space-before': 'never',
'block-closing-brace-empty-line-before': 'never',
'block-closing-brace-newline-after': [
'always',
{
'ignoreAtRules': [
'if',
'else'
]
}
],
'block-closing-brace-newline-before': 'always-multi-line',
'block-closing-brace-space-before': 'always-single-line',
'block-no-empty': true,
'block-opening-brace-newline-after': 'always-multi-line',
'block-opening-brace-space-after': 'always-single-line',
'block-opening-brace-space-before': 'always-multi-line',
'color-hex-case': 'lower',
'color-hex-length': 'short',
'color-no-invalid-hex': true,
'comment-no-empty': true,
'comment-whitespace-inside': 'always',
'custom-property-pattern': /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,
'declaration-bang-space-after': 'never',
'declaration-bang-space-before': 'always',
'declaration-block-no-duplicate-properties': [
true,
{
'ignoreProperties': [
'word-break',
]
}
],
'declaration-block-no-redundant-longhand-properties': true,
'declaration-block-no-shorthand-property-overrides': true,
'declaration-block-semicolon-newline-after': 'always-multi-line',
'declaration-block-semicolon-space-after': 'always-single-line',
'declaration-block-semicolon-space-before': 'never',
'declaration-block-trailing-semicolon': 'always',
'declaration-colon-space-after': 'always-single-line',
'declaration-colon-space-before': 'never',
'declaration-no-important': true,
'font-family-no-duplicate-names': true,
'function-calc-no-unspaced-operator': true,
'function-comma-newline-after': 'always-multi-line',
'function-comma-newline-before': 'never-multi-line',
'function-comma-space-after': 'always-single-line',
'function-comma-space-before': 'never',
'function-linear-gradient-no-nonstandard-direction': true,
'function-max-empty-lines': 1,
'function-name-case': 'lower',
'function-parentheses-newline-inside': 'always-multi-line',
'function-parentheses-space-inside': 'never-single-line',
'function-url-no-scheme-relative': true,
'function-url-quotes': 'always',
'function-whitespace-after': 'always',
'indentation': 2,
'keyframe-declaration-no-important': true,
'length-zero-no-unit': true,
'max-nesting-depth': 7,
'media-feature-colon-space-after': 'always',
'media-feature-colon-space-before': 'never',
'media-feature-name-case': 'lower',
'media-feature-parentheses-space-inside': 'never',
'media-feature-range-operator-space-after': 'always',
'media-feature-range-operator-space-before': 'always',
'media-query-list-comma-newline-after': 'always-multi-line',
'media-query-list-comma-newline-before': 'never-multi-line',
'media-query-list-comma-space-after': 'always-single-line',
'media-query-list-comma-space-before': 'never',
'no-duplicate-at-import-rules': true,
'no-eol-whitespace': true,
'no-extra-semicolons': true,
'no-missing-end-of-source-newline': true,
'number-leading-zero': 'never',
'number-no-trailing-zeros': true,
'property-case': 'lower',
'property-no-unknown': true,
'property-no-vendor-prefix': true,
'selector-attribute-brackets-space-inside': 'never',
'selector-attribute-operator-space-after': 'never',
'selector-attribute-operator-space-before': 'never',
'selector-attribute-quotes': 'always',
'selector-combinator-space-after': 'always',
'selector-combinator-space-before': 'always',
'selector-descendant-combinator-no-non-space': true,
'selector-list-comma-newline-after': 'always',
'selector-list-comma-newline-before': 'never-multi-line',
'selector-list-comma-space-before': 'never',
'selector-max-compound-selectors': 5,
'selector-max-empty-lines': 0,
'selector-max-universal': 1,
'selector-no-qualifying-type': [
true,
{
'ignore': [
'attribute',
'class',
'id'
]
}
],
'selector-pseudo-class-case': 'lower',
'selector-pseudo-class-parentheses-space-inside': 'never',
'selector-pseudo-element-case': 'lower',
'selector-pseudo-element-colon-notation': 'double',
'selector-type-case': 'lower',
'shorthand-property-no-redundant-values': true,
'string-no-newline': true,
'string-quotes': 'double',
'unit-case': 'lower',
'unit-no-unknown': true,
'value-list-comma-newline-before': 'never-multi-line',
'value-list-comma-space-after': 'always-single-line',
'value-list-comma-space-before': 'never',
'value-list-max-empty-lines': 1,
'value-no-vendor-prefix': true,
'order/order': [
[
'custom-properties',
'dollar-variables',
'declarations',
'rules'
]
],
'order/properties-order': [
{
'properties': [
'content',
'quotes'
]
},
{
'properties': [
'display',
'visibility'
]
},
{
'properties': [
'position',
'z-index',
'top',
'right',
'bottom',
'left'
]
},
{
'properties': [
'box-sizing'
]
},
{
'properties': [
'grid',
'grid-area',
'grid-auto-columns',
'grid-auto-flow',
'grid-auto-rows',
'grid-column',
'grid-column-end',
'grid-column-gap',
'grid-column-start',
'grid-gap',
'grid-row',
'grid-row-end',
'grid-row-gap',
'grid-row-start',
'grid-template',
'grid-template-areas',
'grid-template-columns',
'grid-template-rows'
]
},
{
'properties': [
'flex',
'flex-basis',
'flex-direction',
'flex-flow',
'flex-grow',
'flex-shrink',
'flex-wrap',
'box-decoration-break',
'align-content',
'align-items',
'align-self',
'justify-content',
'order'
]
},
{
'properties': [
'width',
'min-width',
'max-width',
'height',
'min-height',
'max-height'
]
},
{
'properties': [
'margin',
'margin-top',
'margin-right',
'margin-bottom',
'margin-left'
]
},
{
'properties': [
'padding',
'padding-top',
'padding-right',
'padding-bottom',
'padding-left'
]
},
{
'properties': [
'float',
'clear'
]
},
{
'properties': [
'overflow',
'overflow-x',
'overflow-y'
]
},
{
'properties': [
'clip',
'zoom'
]
},
{
'properties': [
'columns',
'column-gap',
'column-fill',
'column-rule',
'column-span',
'column-count',
'column-width'
]
},
{
'properties': [
'table-layout',
'empty-cells',
'caption-side',
'border-spacing',
'border-collapse'
]
},
{
'properties': [
'list-style',
'list-style-position',
'list-style-type',
'list-style-image'
]
},
{
'properties': [
'transform',
'transform-origin',
'transform-style',
'backface-visibility',
'perspective',
'perspective-origin'
]
},
{
'properties': [
'transition',
'transition-property',
'transition-duration',
'transition-timing-function',
'transition-delay'
]
},
{
'properties': [
'animation',
'animation-name',
'animation-duration',
'animation-play-state',
'animation-timing-function',
'animation-delay',
'animation-iteration-count',
'animation-direction'
]
},
{
'properties': [
'border',
'border-top',
'border-right',
'border-bottom',
'border-left',
'border-width',
'border-top-width',
'border-right-width',
'border-bottom-width',
'border-left-width'
]
},
{
'properties': [
'border-style',
'border-top-style',
'border-right-style',
'border-bottom-style',
'border-left-style'
]
},
{
'properties': [
'border-radius',
'border-top-left-radius',
'border-top-right-radius',
'border-bottom-left-radius',
'border-bottom-right-radius'
]
},
{
'properties': [
'border-color',
'border-top-color',
'border-right-color',
'border-bottom-color',
'border-left-color'
]
},
{
'properties': [
'outline',
'outline-color',
'outline-offset',
'outline-style',
'outline-width'
]
},
{
'properties': [
'stroke-width',
'stroke-linecap',
'stroke-dasharray',
'stroke-dashoffset',
'stroke'
]
},
{
'properties': [
'opacity'
]
},
{
'properties': [
'background',
'background-color',
'background-image',
'background-repeat',
'background-position',
'background-size',
'box-shadow',
'fill'
]
},
{
'properties': [
'color'
]
},
{
'properties': [
'font',
'font-family',
'font-size',
'font-size-adjust',
'font-stretch',
'font-effect',
'font-style',
'font-variant',
'font-weight'
]
},
{
'properties': [
'font-emphasize',
'font-emphasize-position',
'font-emphasize-style'
]
},
{
'properties': [
'letter-spacing',
'line-height',
'word-spacing'
]
},
{
'properties': [
'text-align',
'text-align-last',
'text-decoration',
'text-indent',
'text-justify',
'text-overflow',
'text-overflow-ellipsis',
'text-overflow-mode',
'text-rendering',
'text-outline',
'text-shadow',
'text-transform',
'text-wrap',
'word-wrap',
'word-break'
]
},
{
'properties': [
'text-emphasis',
'text-emphasis-color',
'text-emphasis-style',
'text-emphasis-position'
]
},
{
'properties': [
'vertical-align',
'white-space',
'hyphens'
]
},
{
'properties': [
'src'
]
},
{
'properties': [
'tab-size',
'counter-reset',
'counter-increment',
'resize',
'cursor',
'pointer-events',
'speak',
'user-select',
'nav-index',
'nav-up',
'nav-right',
'nav-down',
'nav-left'
]
}
],
'scss/at-else-closing-brace-newline-after': 'always-last-in-chain',
'scss/at-else-closing-brace-space-after': 'always-intermediate',
'scss/at-else-empty-line-before': 'never',
'scss/at-else-if-parentheses-space-before': 'always',
'scss/at-function-parentheses-space-before': 'never',
'scss/at-function-pattern': /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,
'scss/at-if-closing-brace-newline-after': 'always-last-in-chain',
'scss/at-if-closing-brace-space-after': 'always-intermediate',
'scss/at-import-no-partial-leading-underscore': true,
'scss/at-mixin-argumentless-call-parentheses': 'never',
'scss/at-mixin-parentheses-space-before': 'never',
'scss/at-mixin-pattern': /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,
'scss/declaration-nested-properties-no-divided-groups': true,
'scss/dollar-variable-colon-space-before': 'never',
'scss/dollar-variable-pattern': /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,
'scss/operator-no-unspaced': true,
'scss/percent-placeholder-pattern': /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,
'scss/selector-no-redundant-nesting-selector': true,
}
};

337
CHANGELOG.md Normal file
View File

@@ -0,0 +1,337 @@
v2.16.2 (2023-11-20):
* Fixed #268 calendar display with Redmine 5.1
v2.16.1 (2023-10-11):
* Fixed #266 typo of expanded icon class
v2.16.0 (2023-05-14):
* Update theme to make it work with 5.0.
* Fixed issues #222, #233, #242, #245, #246, #253, and few others.
v2.15.0 (2021-05-23):
* Updated styles for Redmine 4.2.
* Merged #225 (via #228): improved documents styles.
v2.14.0 (2021-01-27):
* Merged #220: fixed drag & drop behavior.
v2.13.0 (2020-09-26):
* Replaced node-sass with sass.
* Resolved issues with `inline-svg` function in Node 14.x.
v2.12.1 (2020-08-11):
* Fixed #204 - missing context menu icons in Easy WBS plugin.
v2.12.0 (2020-08-01):
* Fixed #196 and #199: text wrapping in certain column types.
* Merged #203: fixed pagination overlapping wiki content.
v2.11.0 (2020-05-08):
* Fixed #179: full screen mode issues when using redmine_wysiwyg_editor plugin.
* Fixed #177: changed styling for icon-only buttons to resolve weird behavior on hover.
* Added `$icon-width` variable.
* Added margin in some places like after buttons, avatars.
* Changed tooltip background to black.
* Changed top menu styles.
* Restored `$color-priorities` variable, `false` by default.
* Added `parse-length($value, $side)` function for extracting length/width from margin/padding/border.
* Fixed checkbox cell padding when issue table borders are enabled.
* Added table icon to jstoolbar styles.
* Refactored icons code.
* Improved styles for [RedmineUP](https://www.redmineup.com/pages/plugins) plugins (Agile, Checklists, CRM, Tags).
* Improved vertical alignment of certain form elements.
* Improved styles for sortable elements.
* Added new `.inline-flex` class.
* Improved styles for [Redmine Banner](https://github.com/akiko-pusu/redmine_banner) plugin.
v2.10.2 (2020-04-09):
* Fixed #175: couldn't edit note when it's URL target.
* Improved styling of some inline edit forms.
v2.10.1 (2020-04-06):
* Fixed #160: highlight color in jQuery UI menu, most notably in checklist plugin.
v2.10.0 (2020-04-05):
* Fixed #172 Collapsed/expended icons for completed versions.
* Fixed #171 "Display" label in Gantt option.
* Fixed #170 radio buttons in projects options.
* Fixed #169 styles in the spent time tab.
* Fixed #164: apply responsive overrides more generally
* Fixed #159: wrapping long text in issue attributes.
* Fixed #150: styling for query totals and expander in Agile plugin.
* Fixed #148: full screen view for Dashboard plugin.
* Fixed a "timeline" positioning in issue notes/changes.
* Changed lightness of shades 50 and 950.
* Changed loader styles.
* Changed rouge syntax highlighter color scheme.
v2.9.1 (2020-02-22):
* Merged fix #155: $.load function removed from jQuery.
* Fixed badge positioning in roadmap screen.
v2.9.0 (2020-01-30):
* Fixed #141: improved styling for issue edit form.
* Fixed #142: TOC assumes `left` by default, also added new variables to control how it looks.
* Fixed #143: `$main-menu-bg-hover` is now being used.
* Resolved #144: added `$main-menu-bg-active` variable.
* Resolved #145: added `$table-list-header-bg` variable.
* Fixed #147: corrected forum edit attached files icon.
* Fixed #153: improved styling for `label.block`.
* Added styling for clear query button.
* Improved responsive sidebar menu layout.
v2.8.0 (2019-08-13):
* Resolved #132: fixed spacing for headers on roadmap pages.
* Merged fix #136: broken layout with large image attachment.
v2.7.0 (2019-06-13):
* Resolved #124: added support for [issue-id](http://projects.andriylesyuk.com/projects/issue-id/) plugin.
v2.6.0 (2019-06-13):
* Resolved #121: added support for [redmine_wiki_page_tree](https://github.com/ledsun/redmine_wiki_page_tree) plugin.
v2.5.0 (2019-06-05):
* Fixed #117, #118 and added many improvements to the responsive layout.
v2.4.0 (2019-06-02):
* Synchronized most application styles with Redmine's default theme.
* Fixed #115: color overdue date in issue lists.
v2.3.1 (2019-05-09):
* Fixed #112: improved highlight contrast in text diffs.
v2.3.0 (2019-05-09):
* Fixed #107: nested lists in the sidebar via [Additionals](https://www.redmine.org/plugins/additionals) plugin.
v2.2.0 (2019-04-09):
* Fixed #101, #102: tooltip positioning
v2.1.1 (2019-03-23):
* Fixed sidebar toggler style when fixed layout is enabled
* Fixed contextual dropdown padding in mobile view
v1.11.0 (2019-03-22):
* Backported fixes from v2:
* Fixed #89: [RM+ custom menu](http://rmplus.pro/en/redmine/plugins/custom_menu) breaking the layout
* Fixed #90: regression in some sidebar layouts
* Fixed #93: Agile chart expanding indefinitely when Additional "Go to top" link is enabled
* Fixed #94: subtasks indentation
* Fixed styling of some flash messages
* Fixed horizontal scrollbar appearing when sidebar is on the right
* Fixed footer being mispositioned in Agile charts
* Fixed positioning of admin menu icons for some plugins
* Improved support for [Redmine Tags](https://www.redmineup.com/pages/plugins/tags) plugin
* Added separator line between news on the news list
* Improved Redmine 4.0 compatibility
* Updated Font Awesome icons to 4.7.0
v2.1.0 (2019-03-22):
* Added CSS grid layout support (off by default because of IE support)
* Fixed styling of some flash messages
* Fixed horizontal scrollbar appearing when sidebar is on the right
* Fixed footer being mispositioned in Agile charts
* Improved support for [Redmine Tags](https://www.redmineup.com/pages/plugins/tags) plugin
* Fixed positioning of admin menu icons for some plugins
* Added separator line between news on the news list
* Fixed #93: Agile chart expanding indefinitely when Additional "Go to top" link is enabled
* Fixed #94: subtasks indentation
* Improved progress bar styling, avatar positioning, WYSIWYG button styling, wiki preview font sizes
v2.0.2 (2019-03-20):
* Fixed #89: [RM+ custom menu](http://rmplus.pro/en/redmine/plugins/custom_menu) breaking the layout
v2.0.1 (2019-03-17):
* Fixed #90: regression in some sidebar layouts
* Removed reduntant `abbr[title]` styles
v2.0 (2019-03-13):
* Refreshed, modernized look & feel
* Added priority icons
* Removed `$color-priorities` setting and styles
* Improved Redmine 4.0 compatibility
* Updated Font Awesome icons to 4.7.0
v1.10.0 (2019-03-12):
* Fixed #86: added support for redmine_hearts plugin
v1.9.0 (2019-03-01):
* Fixed #42: override some styles from [RM+](http://rmplus.pro) plugins
* Merged #43: fixes for Redmine 3.3.2.devel
* Support for responsive menu and further changes for Redmine 3.3.2.devel (fixes #26)
* Improved styles for custom flash messages in wiki content (e.g. for [WikiNG](http://www.redmine.org/plugins/wiking) plugin)
* Introduce project tiles on projects list page (enabled by default, can be switched off by setting `$use-project-tiles` to `false`)
* Fixed #44: adjust width of the label column on the login form
* Merged #49: German translations
* Fixed #50: printed content on second page onwards was missing in Firefox
* Fixed #51: a plugin dropdown in top menu could be too narrow
* Fixed #52: delete watcher icon in the sidebar was missing
* Fixed #54: long checkbox lists will be scrollable
* Fixed #62: anchors won't scroll the page
* Fixed #69: fixed "remember me" checkbox layout on login page
* Fixed #78: files not visible on list in wiki when there is a lot of them
* Updated dependencies
* Fixed #81: top watchers checkboxes were not visible on Firefox
* Removed `checkbox` and `radio` mixins in favour of `check`
* Fixed #83: editor tabs layout in Redmine 4.0
v1.8.0 (2016-11-20):
* Fixed #19: missing text wrapping for long text custom fields
* Fixed #20: applied Font Awesome font-family for icons in Time Tracker overview
* Fixed duplicated pencil icon for Description in issue form in Redmine 3.1.2+
* Fixed #21: added styling for compatibility with layout changes in Redmine 3.2.0
* Fixed #23: set width for progress bars
* Fixed #25: proper styles for pagination
* Fixed #28: correct icon will be displayed for users that cannot edit notes in journal
* Fixed #30: styles will now compile with latest Sass
* Fixed #32, #33: improve @shawndibble's styles for new main menu styles in Redmine 3.3
* Various small visual tweaks
* Fixed #34: project breadcrumbs in the header should wrap nicely
* Fixed #35: `.icon-only` class should now display only icons, buttons with icons should de displayed correctly with Font-Awesome disabled
* Fixed #36: npm dependencies can be installed on production environments + update grunt to its latest version
* Fixed #37: added support for drag'n'drop re-ordering in issue statuses, roles, and trackers settings
* Fixed #38: corrected z-index for dropdown new item menu on backlogs page (thanks to @futaz, see PR #39)
* Changed indentation to 2 spaces (to match with Redmine's coding style)
* Introduced [autoprefixer](https://github.com/postcss/autoprefixer) via [PostCSS](http://postcss.org)
* Updated [scss-lint](https://github.com/brigade/scss-lint) rules
* Added [JavaScript Standard Style](http://standardjs.com)
v1.7.2 (2015-10-12):
* Fixed `.pagination` float in project members settings
* Lists' cells are aligned to center by default (as in Redmine's default theme)
v1.7.1 (2015-10-10):
+ Improved styling for [Stuff To Do][stuff_to_do] plugin
v1.7.0 (2015-09-25):
* Added styles for optgroup (Firefox only)
* Fixed #13: #header was missing clearfix and was breaking the layout is some cases
* Coloring issue's title instead of link in Gantt diagram for overdue issues
* Updated npm packages: grunt-sass from 0.18.0 to 1.0.0 and grunt-contrib-uglify 0.7.0 to 0.9.1
* Use flexbox layout by default (can be changed by setting `$flexbox-layout` to `false`)
* Fixed animation issue when showing sidebar
* Slightly modified buttons' style
* Few visual tweaks: nicer shadows, improved datepickers layout
+ Configurable list borders and highlighting of hovered and even/odd rows
+ Introduce `$pagination-padding-` variables and make pagination buttons' height equal to buttons by default
* Fixed #16: remove `white-space: nowrap` from external links to prevent breaking the page with flexbox layout
* Fixed colored trackers in tooltips in Backlogs plugin
* Fixed broken codebutton modal after making buttons wider
* Changed the license to MIT
v1.6.0 (2015-06-10):
* Fixed #8: Setting `$top-menu-collapse` to `true` will enable script allowing to toggle if top menu should be collapsed (no wrapping) or expanded (wrapped, with auto height)
+ Header matching current URL fragment will have `#` prepended
+ Introduced `$font-weight-normal` and `$font-weight-bold` variables to give better control on the appearance of text with custom fonts
* Fixed #9: Added `$main-menu-collapse` and applied the same logic as in #8
* Fixed #12: Removed `display: block` from issue's subject link to allow context menu to popup upon right click next to subject
* Resolved #11: Company logo can be added to the header
v1.5.0 (2015-04-15):
* Fixed #5: Added default style for colored issue links.
* Introduced `$tracker-colors-map` and removed `$tracker-X-bg` variables.
See d220db1 comments for more details.
* Fixed #6: Added default padding for table cells.
v1.4.1 (2015-04-14):
* Fixed #3: Closed tasks will be more appreciable.
v1.4.0 (2015-04-10):
+ Introduced option `$wiki-page-more-vertical-space` (by default `true`) to improve wiki pages' readability even more
* Fixed bottom margin of `pre` tag
+ Added a few helper classes from Bootstrap
* WYSIWYG's icons will squeeze a little bit on smaller screens
* Images in headers will be aligned to the middle vertically
+ Introduced `text-normal` class for resetting font's weight
+ Added class `toc-active-prev` that will "highlight" TOC as "active".
* Fixed #2: Make sure that `.sort` with Font Awesome icons won't have background image
* Fixed attachments div's layout for wiki pages
For more details, see [release v1.4.0](https://github.com/mrliptontea/PurpleMine2/releases/tag/v1.4.0)
v1.3.0 (2015-04-01):
* Backlogs: make it possible to click on empty field
* Corrected issue form columns widths so they will be equal in all fieldsets
* Changesets will look similar to issue's journal
+ Improved revision page layout and added Font Awesome icons
+ Improved file content view
* Fixed #1: Font Awesome icons will no longer break plugins' icons
+ Introduced styles for [People][redmine_crm_people] plugin
* Enhanced styles for activities list
* Regular buttons (e.g. `Cancel`) will look like links in dialog windows
* Fixed look of collapsible arrow in Firefox
+ Overrode Redmine's revision graph function to make it look better
+ Animated collapsible fieldsets
+ Custom image based icons changed to base64 embedded data
v1.2.0 (2015-03-03):
* Fixed .warning style
+ Coloring status on issue page (it'll look like label)
* Fixed master backlog sub-menu accessibility
+ Changed font weight to normal for sub-projects in project list
* Fixed watch task path for .js
- Removed unnecessary classes from .sidebar-toggler
* Fixed external link icon, when URI contains the word 'edit'
* Fixed wiki page headers links font-size
+ Changed some trackers default colors
+ Bolded user name on issue page if it's current user
* Issue's journal appearance changed once again
+ Some improvements in wiki formatting
+ Introduced HistoryTabs for filtering issue journals
* Improved issue page styles and adjusted default priority colors
* Backlogs: added delay before hiding backlog menu
* Changed ancestor project name in top to equal font size, but different weight
* Fixed context menu position regression introduced by sidebar toggle
v1.1.0 (2015-02-15):
+ Changed issue's journal appearance
+ jQuery UI menus look improved
+ Removed box-shadow from boxes
+ Bumped grunt-sass version
+ Toggling sidebar visibility
+ Recompressed images
+ Changelog added
v1.0.0 (2015-02-06):
Initial version

View File

@@ -4,8 +4,15 @@ module.exports = function (grunt) {
sass: {
options: {
implementation: require('sass'),
sourceMap: false,
outputStyle: 'compressed'
outputStyle: 'compressed',
functions: {
'inline-svg($path, $selectors: null)': require('@liquid-js/sass-inline-svg')('./svg', {
optimize: true,
encodingFormat: 'uri'
})
}
},
theme: {
@@ -31,7 +38,7 @@ module.exports = function (grunt) {
postcss: {
options: {
processors: [
require('autoprefixer')({ browsers: 'last 2 versions' })
require('autoprefixer')()
]
},

152
README.md
View File

@@ -1,14 +1,12 @@
# PurpleMine 2
A free Redmine theme for modern browsers.
A free Redmine 3.0+ theme written in SCSS.
![The MIT License](https://img.shields.io/badge/license-MIT-584492.svg?style=flat-square) [![Release](https://img.shields.io/github/release/mrliptontea/PurpleMine2.svg?style=flat-square)](https://github.com/mrliptontea/PurpleMine2/releases) [![Issues](https://img.shields.io/github/issues/mrliptontea/PurpleMine2.svg?style=flat-square)](https://github.com/mrliptontea/PurpleMine2/issues) [![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
![The MIT License](https://img.shields.io/badge/license-MIT-584492.svg) [![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) ![Run linters](https://github.com/mrliptontea/PurpleMine2/workflows/Run%20linters/badge.svg) [![Issues](https://img.shields.io/github/issues/mrliptontea/PurpleMine2.svg)](https://github.com/mrliptontea/PurpleMine2/issues)
---
![Screenshot](https://github.com/mrliptontea/PurpleMine2/raw/master/screenshots/issues-list.png)
Compatible with Redmine 2.5+ and browsers: IE10+/Edge, latest Firefox and Google Chrome (others were not tested).
![Screenshot](https://github.com/mrliptontea/PurpleMine2/raw/master/screenshots/issues.png)
It's written in [SCSS]. It uses [normalize.css] and benefits from some parts of [Bootstrap][bootstrap-sass] like mixins, structure, and stuff.
@@ -18,7 +16,7 @@ It's written in [SCSS]. It uses [normalize.css] and benefits from some parts of
* Github-like wiki content look,
* Sidebar moved to the left for better ergonomy,
* Coloring trackers links (on lists, issue pages and even in the wiki content),
* Highlighting issues priority on the list and on the issue page,
* Jira-inspired priority icons,
* Toggling sidebar visibility,
* Easy to customize via variables.
@@ -38,21 +36,17 @@ Also, [Redmine Time Tracker][redmine_time_tracker] and [Redmine People][redmine_
If you want to customize PurpleMine to your needs, first, make sure that you have installed [node.js](http://nodejs.org/) and `npm` is available in your terminal.
If haven't yet, you need to install grunt:
npm install grunt-cli -g
Then, from the directory that contains PurpleMine run:
npm install
Now all the dependencies should be ready to use. Run one more command:
grunt watch
npm run watch
And now the grunt is watching for changes in files placed in `src/` folder. Just change what you need, and it'll run SASS preprocessor automatically.
And now the grunt is watching for changes in files placed in `src/` folder. Just change what you need, and it'll run Sass preprocessor automatically.
Regrettably, optional file include is not possible in SASS, so I would recommend creating a new file, e.g. `src/sass/_custom-variables.scss` and importing it a the beginning of the `application.scss` file. That way all the variables with the `!default` flag could be overridden.
Regrettably, optional file include is not possible in Sass, so I would recommend creating a new file, e.g. `src/sass/_custom-variables.scss` and importing it a the beginning of the `application.scss` file. That way all the variables with the `!default` flag could be overridden.
The path `src/sass/_custom-variables.scss` is added to `.gitignore` so it should make upgrading PurpleMine with keeping your changes rather painless, given that the only thing you changed in PurpleMine's source was adding this one line with `@import "custom-variables";`.
@@ -60,137 +54,7 @@ If you need to customize styles for [Redmine Backlogs][redmine_backlogs] remembe
## Changelog
v1.8.0 (2016-11-20):
* Fixed #19: missing text wrapping for long text custom fields
* Fixed #20: applied Font Awesome font-family for icons in Time Tracker overview
* Fixed duplicated pencil icon for Description in issue form in Redmine 3.1.2+
* Fixed #21: added styling for compatibility with layout changes in Redmine 3.2.0
* Fixed #23: set width for progress bars
* Fixed #25: proper styles for pagination
* Fixed #28: correct icon will be displayed for users that cannot edit notes in journal
* Fixed #30: styles will now compile with latest Sass
* Fixed #32, #33: improve @shawndibble's styles for new main menu styles in Redmine 3.3
* Various small visual tweaks
* Fixed #34: project breadcrumbs in the header should wrap nicely
* Fixed #35: `.icon-only` class should now display only icons, buttons with icons should de displayed correctly with Font-Awesome disabled
* Fixed #36: npm dependencies can be installed on production environments + update grunt to its latest version
* Fixed #37: added support for drag'n'drop re-ordering in issue statuses, roles, and trackers settings
* Fixed #38: corrected z-index for dropdown new item menu on backlogs page (thanks to @futaz, see PR #39)
* Changed indentation to 2 spaces (to match with Redmine's coding style)
* Introduced [autoprefixer](https://github.com/postcss/autoprefixer) via [PostCSS](http://postcss.org)
* Updated [scss-lint](https://github.com/brigade/scss-lint) rules
* Added [JavaScript Standard Style](http://standardjs.com)
v1.7.2 (2015-10-12):
* Fixed `.pagination` float in project members settings
* Lists' cells are aligned to center by default (as in Redmine's default theme)
v1.7.1 (2015-10-10):
+ Improved styling for [Stuff To Do][stuff_to_do] plugin
v1.7.0 (2015-09-25):
* Added styles for optgroup (Firefox only)
* Fixed #13: #header was missing clearfix and was breaking the layout is some cases
* Coloring issue's title instead of link in Gantt diagram for overdue issues
* Updated npm packages: grunt-sass from 0.18.0 to 1.0.0 and grunt-contrib-uglify 0.7.0 to 0.9.1
* Use flexbox layout by default (can be changed by setting `$flexbox-layout` to `false`)
* Fixed animation issue when showing sidebar
* Slightly modified buttons' style
* Few visual tweaks: nicer shadows, improved datepickers layout
+ Configurable list borders and highlighting of hovered and even/odd rows
+ Introduce `$pagination-padding-` variables and make pagination buttons' height equal to buttons by default
* Fixed #16: remove `white-space: nowrap` from external links to prevent breaking the page with flexbox layout
* Fixed colored trackers in tooltips in Backlogs plugin
* Fixed broken codebutton modal after making buttons wider
* Changed the license to MIT
v1.6.0 (2015-06-10):
* Fixed #8: Setting `$top-menu-collapse` to `true` will enable script allowing to toggle if top menu should be collapsed (no wrapping) or expanded (wrapped, with auto height)
+ Header matching current URL fragment will have `#` prepended
+ Introduced `$font-weight-normal` and `$font-weight-bold` variables to give better control on the appearance of text with custom fonts
* Fixed #9: Added `$main-menu-collapse` and applied the same logic as in #8
* Fixed #12: Removed `display: block` from issue's subject link to allow context menu to popup upon right click next to subject
* Resolved #11: Company logo can be added to the header
v1.5.0 (2015-04-15):
* Fixed #5: Added default style for colored issue links.
* Introduced `$tracker-colors-map` and removed `$tracker-X-bg` variables.
See d220db1 comments for more details.
* Fixed #6: Added default padding for table cells.
v1.4.1 (2015-04-14):
* Fixed #3: Closed tasks will be more appreciable.
v1.4.0 (2015-04-10):
+ Introduced option `$wiki-page-more-vertical-space` (by default `true`) to improve wiki pages' readability even more
* Fixed bottom margin of `pre` tag
+ Added a few helper classes from Bootstrap
* WYSIWYG's icons will squeeze a little bit on smaller screens
* Images in headers will be aligned to the middle vertically
+ Introduced `text-normal` class for resetting font's weight
+ Added class `toc-active-prev` that will "highlight" TOC as "active".
* Fixed #2: Make sure that `.sort` with Font Awesome icons won't have background image
* Fixed attachments div's layout for wiki pages
For more details, see [release v1.4.0](https://github.com/mrliptontea/PurpleMine2/releases/tag/v1.4.0)
v1.3.0 (2015-04-01):
* Backlogs: make it possible to click on empty field
* Corrected issue form columns widths so they will be equal in all fieldsets
* Changesets will look similar to issue's journal
+ Improved revision page layout and added Font Awesome icons
+ Improved file content view
* Fixed #1: Font Awesome icons will no longer break plugins' icons
+ Introduced styles for [People][redmine_crm_people] plugin
* Enhanced styles for activities list
* Regular buttons (e.g. `Cancel`) will look like links in dialog windows
* Fixed look of collapsible arrow in Firefox
+ Overrode Redmine's revision graph function to make it look better
+ Animated collapsible fieldsets
+ Custom image based icons changed to base64 embedded data
v1.2.0 (2015-03-03):
* Fixed .warning style
+ Coloring status on issue page (it'll look like label)
* Fixed master backlog sub-menu accessibility
+ Changed font weight to normal for sub-projects in project list
* Fixed watch task path for .js
- Removed unnecessary classes from .sidebar-toggler
* Fixed external link icon, when URI contains the word 'edit'
* Fixed wiki page headers links font-size
+ Changed some trackers default colors
+ Bolded user name on issue page if it's current user
* Issue's journal appearance changed once again
+ Some improvements in wiki formatting
+ Introduced HistoryTabs for filtering issue journals
* Improved issue page styles and adjusted default priority colors
* Backlogs: added delay before hiding backlog menu
* Changed ancestor project name in top to equal font size, but different weight
* Fixed context menu position regression introduced by sidebar toggle
v1.1.0 (2015-02-15):
+ Changed issue's journal appearance
+ jQuery UI menus look improved
+ Removed box-shadow from boxes
+ Bumped grunt-sass version
+ Toggling sidebar visibility
+ Recompressed images
+ Changelog added
v1.0.0 (2015-02-06):
Initial version
[Changelog](./CHANGELOG.md).
[SCSS]: http://sass-lang.com/
[normalize.css]: https://github.com/necolas/normalize.css

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 280 KiB

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 971 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 941 B

File diff suppressed because one or more lines are too long

13062
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "PurpleMine2",
"description": "A free Redmine 2.5+ theme written in SCSS",
"name": "purplemine",
"description": "A free Redmine 3.0+ theme written in SCSS",
"keywords": [
"redmine",
"theme",
@@ -18,23 +18,43 @@
},
"homepage": "https://github.com/mrliptontea/PurpleMine2",
"scripts": {
"lint": "standard && scss-lint"
"build": "grunt",
"watch": "grunt watch",
"lint:js": "eslint src/javascripts/",
"lint:sass": "stylelint src/sass/**/*.scss",
"lint": "npm run -S lint:js && npm run -S lint:sass"
},
"dependencies": {
"autoprefixer": "^6.5.3",
"grunt": "^1.0.1",
"grunt-contrib-uglify": "^2.0.0",
"grunt-contrib-watch": "^1.0.0",
"grunt-postcss": "^0.8.0",
"grunt-sass": "^1.0.0"
"@liquid-js/sass-inline-svg": "^2.0.0",
"autoprefixer": "^9.8.8",
"grunt": "^1.6.1",
"grunt-contrib-uglify": "^5.2.2",
"grunt-contrib-watch": "^1.1.0",
"grunt-postcss": "^0.9.0",
"grunt-sass": "^3.1.0",
"sass": "^1.69.5"
},
"devDependencies": {
"standard": "^8.5.0"
"eslint": "^7.32.0",
"eslint-config-standard": "^14.1.1",
"eslint-plugin-import": "^2.29.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.3.1",
"eslint-plugin-standard": "^4.1.0",
"husky": "^4.3.8",
"lint-staged": "^10.5.4",
"stylelint": "^13.13.1",
"stylelint-order": "^4.1.0",
"stylelint-scss": "^3.21.0"
},
"standard": {
"globals": [ "$", "localStorage" ],
"ignore": [
"/javascripts"
]
"browserslist": [
"last 2 versions",
"> 1%",
"not dead"
],
"husky": {
"hooks": {
"pre-commit": "lint-staged --relative"
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
.ui-multiselect{padding:2px 0 2px 4px;text-align:left}.ui-multiselect span.ui-icon{float:right}.ui-multiselect-single .ui-multiselect-checkboxes input{position:absolute !important;top:auto !important;left:-9999px}.ui-multiselect-single .ui-multiselect-checkboxes label{padding:5px !important}.ui-multiselect-header{margin-bottom:3px;padding:3px}.ui-multiselect-header ul{font-size:.92em}.ui-multiselect-header ul li{padding:0 10px 0 0;float:left}.ui-multiselect-header a{text-decoration:none}.ui-multiselect-header a:hover{text-decoration:underline}.ui-multiselect-header span.ui-icon{float:left}.ui-multiselect-header li.ui-multiselect-close{padding-right:0;float:right;text-align:right}.ui-multiselect-menu{box-shadow:0 3px 6px rgba(0,0,0,0.16),0 3px 6px rgba(0,0,0,0.23);display:none;position:absolute;padding:3px;text-align:left;z-index:10000}.ui-multiselect-checkboxes{position:relative;padding-right:2px;overflow-y:scroll}.ui-multiselect-checkboxes input[type="checkbox"]{top:0;margin:3px 0 0 -20px;float:left}.ui-multiselect-checkboxes input[type="checkbox"]:focus{outline:none}.ui-multiselect-checkboxes label{display:block;padding:3px 1px;padding-left:26px;border:1px solid transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui-multiselect-checkboxes label input{position:relative;top:1px}.ui-multiselect-checkboxes li{clear:both;font-size:.92em}.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label{margin-bottom:2px;border-bottom:1px solid #ccc;font-weight:bold;text-align:center}.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a{display:block;margin:1px 0;padding:3px;text-decoration:none}* html .ui-multiselect-checkboxes label{border:0 none}
.ui-multiselect{padding:2px 0 2px 4px;text-align:left}.ui-multiselect span.ui-icon{float:right}.ui-multiselect-single .ui-multiselect-checkboxes input{position:absolute !important;top:auto !important;left:-9999px}.ui-multiselect-single .ui-multiselect-checkboxes label{padding:5px !important}.ui-multiselect-header{margin-bottom:3px;padding:3px}.ui-multiselect-header ul{font-size:.92em}.ui-multiselect-header ul li{padding:0 10px 0 0;float:left}.ui-multiselect-header a{text-decoration:none}.ui-multiselect-header a:hover{text-decoration:underline}.ui-multiselect-header span.ui-icon{float:left}.ui-multiselect-header li.ui-multiselect-close{padding-right:0;float:right;text-align:right}.ui-multiselect-menu{box-shadow:0 5px 8px -2px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.3);display:none;position:absolute;z-index:10000;padding:3px;text-align:left}.ui-multiselect-checkboxes{position:relative;padding-right:2px;overflow-y:scroll}.ui-multiselect-checkboxes input[type=checkbox]{top:0;margin:3px 0 0 -20px;float:left}.ui-multiselect-checkboxes label{display:block;padding:3px 1px;padding-left:26px;border:1px solid rgba(0,0,0,0);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui-multiselect-checkboxes label input{position:relative;top:1px}.ui-multiselect-checkboxes li{clear:both;font-size:.92em}.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label{margin-bottom:2px;border-bottom:1px solid #dadce6;font-weight:600;text-align:center}.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a{display:block;margin:1px 0;padding:3px;text-decoration:none}* html .ui-multiselect-checkboxes label{border:0 none}

View File

@@ -1 +1 @@
.qtip{position:absolute;top:-31000px;left:-31000px;width:auto;max-width:500px;outline:none}.ui-tooltip-content{box-shadow:0 3px 6px rgba(0,0,0,0.16),0 3px 6px rgba(0,0,0,0.23);position:relative;padding:10px;border:1px solid #ccc;background-color:#fff;color:#555;font-size:.92em;text-align:left;word-wrap:break-word;overflow:hidden}.ui-tooltip-tip{border-color:#ccc;background-color:#fff}.ui-tooltip-tip{position:absolute;margin:0 auto;border:0 none;background:transparent;overflow:hidden;z-index:10}
.qtip{position:absolute;top:-31000px;left:-31000px;width:auto;max-width:500px;outline:none}.ui-tooltip-content{box-shadow:0 5px 8px -2px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.3);position:relative;padding:10px;overflow:hidden;border:1px solid #d1d3e0;background-color:#fff;color:#3e4359;font-size:.92em;text-align:left;word-wrap:break-word}.ui-tooltip-tip{position:absolute;z-index:10;margin:0 auto;overflow:hidden;border:0 none;border-color:#d1d3e0;background:rgba(0,0,0,0);background-color:#fff}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
table th,table td{padding:5px 8px}.ui-widget{margin-bottom:20px}.score{display:inline-block;width:1.5em;font-size:large;text-align:center}.score_0{background-color:#f00}.score_1{background-color:#ff5300}.score_2{background-color:#ff8100}.score_3{background-color:#ffa100}.score_4{background-color:#fb0}.score_5{background-color:#ffd300}.score_6{background-color:#ffec00}.score_7{background-color:#e9fb00}.score_8{background-color:#b1f100}.score_9{background-color:#74e600}.score_10{background-color:#0c0}
table th,table td{padding:5px 8px}.ui-widget{margin-bottom:20px}.score{display:inline-block;width:1.5em;font-size:large;text-align:center}.score_0{background-color:red}.score_1{background-color:#ff5300}.score_2{background-color:#ff8100}.score_3{background-color:#ffa100}.score_4{background-color:#fb0}.score_5{background-color:#ffd300}.score_6{background-color:#ffec00}.score_7{background-color:#e9fb00}.score_8{background-color:#b1f100}.score_9{background-color:#74e600}.score_10{background-color:#0c0}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

BIN
screenshots/issues.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -1,4 +1,4 @@
var PurpleMine = PurpleMine || {}
var PurpleMine = PurpleMine || {} // eslint-disable-line no-use-before-define
PurpleMine.HistoryTabs = (function () {
'use strict'
@@ -10,10 +10,30 @@ PurpleMine.HistoryTabs = (function () {
notes: 'Notes',
details: 'Changes'
},
ro: {
all: 'Toate',
notes: 'Note',
details: 'Schimbări'
},
fr: {
all: 'Tout',
notes: 'Remarques',
details: 'Changements'
},
pl: {
all: 'Wszystko',
notes: 'Notatki',
details: 'Zmiany'
},
de: {
all: 'Alles',
notes: 'Kommentare',
details: 'Änderungen'
},
ja: {
all: 'すべて',
notes: '注記',
details: '変更'
}
}
@@ -35,7 +55,7 @@ PurpleMine.HistoryTabs = (function () {
this._ = translations[this.lang]
if (this.$history.length > 0) {
if (this.$history.length > 0 && $('#history > h3').length > 0) {
buildTabs()
markFirstOfTypes()
}
@@ -73,8 +93,8 @@ PurpleMine.HistoryTabs = (function () {
$this.addClass('selected')
instance.$history
.removeClass('hide-details')
.removeClass('hide-notes')
.removeClass('hide-details')
.removeClass('hide-notes')
if (tab === 'notes') {
instance.$history.addClass('hide-details')

View File

@@ -1,4 +1,4 @@
var PurpleMine = PurpleMine || {}
var PurpleMine = PurpleMine || {} // eslint-disable-line no-use-before-define
PurpleMine.MenuCollapse = (function () {
'use strict'
@@ -8,8 +8,20 @@ PurpleMine.MenuCollapse = (function () {
en: {
topMenuToggler: 'Expand/collapse top menu'
},
ro: {
topMenuToggler: 'Deschide/închide meniul de sus'
},
fr: {
topMenuToggler: 'Développer/réduire le menu principal'
},
pl: {
topMenuToggler: 'Zwiń/rozwiń górne menu'
},
de: {
topMenuToggler: 'Ein-/Ausklappen Hauptmenu'
},
ja: {
topMenuToggler: 'トップメニューの展開/折りたたみ'
}
}
@@ -35,6 +47,7 @@ PurpleMine.MenuCollapse = (function () {
}
for (var menu in this.menus) {
// eslint-disable-next-line no-prototype-builtins
if (this.menus.hasOwnProperty(menu) && this.menus[menu].$el.length > 0) {
handleMenu(menu)
}

View File

@@ -1,8 +1,5 @@
var PurpleMine = PurpleMine || {}
var PurpleMine = PurpleMine || {} // eslint-disable-line no-use-before-define
/* global Raphael: false, revisionGraph: true */
/* jshint camelcase: false */
/* jshint maxstatements: false */
/* jshint maxlen: 160 */
PurpleMine.RevisionGraph = function (holder, commitsHash, graphSpace) {
'use strict'
@@ -55,6 +52,7 @@ PurpleMine.RevisionGraph = function (holder, commitsHash, graphSpace) {
var revisionDotOverlay
$.each(commits, function (index, commit) {
// eslint-disable-next-line no-prototype-builtins
if (!commit.hasOwnProperty('space')) {
commit.space = 0
}
@@ -75,6 +73,7 @@ PurpleMine.RevisionGraph = function (holder, commitsHash, graphSpace) {
parentCommit = commitsByScmid[parentScmid]
if (parentCommit) {
// eslint-disable-next-line no-prototype-builtins
if (!parentCommit.hasOwnProperty('space')) {
parentCommit.space = 0
}

View File

@@ -1,4 +1,4 @@
var PurpleMine = PurpleMine || {}
var PurpleMine = PurpleMine || {} // eslint-disable-line no-use-before-define
PurpleMine.SidebarToggler = (function () {
'use strict'
@@ -8,8 +8,17 @@ PurpleMine.SidebarToggler = (function () {
en: {
toggler: 'Toggle sidebar'
},
ro: {
toggler: 'Deschide/închide bara laterală'
},
fr: {
toggler: 'Basculer la barre latérale'
},
pl: {
toggler: 'Pokaż/ukryj panel boczny'
},
ja: {
toggler: 'サイドバーの切り替え'
}
}
@@ -23,6 +32,7 @@ PurpleMine.SidebarToggler = (function () {
this.sidebarVisible = true
this.sidebarHiding = null
this.$toggler = null
this.$header = $('#header')
this.$main = $('#main')
this.$sidebar = $('#sidebar')
this.lang = document.documentElement.lang
@@ -33,11 +43,6 @@ PurpleMine.SidebarToggler = (function () {
this._ = translations[this.lang]
// Fix issue with context menu position
if (this.$main.css('position') === 'relative') {
$('#context-menu').appendTo('#wrapper3')
}
handleSidebar()
}
@@ -85,7 +90,7 @@ PurpleMine.SidebarToggler = (function () {
'"></a>'
instance.$toggler = $(togglerHtml)
instance.$main.append(instance.$toggler)
instance.$header.append(instance.$toggler)
instance.$toggler.on('click', instance.toggleSidebar)
}

4
src/sass/_functions.scss Normal file
View File

@@ -0,0 +1,4 @@
// Functions
// --------------------------------------------------
@import "functions/parse-length";

View File

@@ -1,79 +1,142 @@
@use "sass:math";
//
// Variables
// --------------------------------------------------
// stylelint-disable indentation
//== Some key attributes
//
$fixed-layout: false !default;
$css-grid-layout: false !default;
$flexbox-layout: true !default;
$sidebar-position: left !default;
$color-priorities: true !default;
$clean-issues: true !default;
$color-trackers: true !default;
$colored-issue: true !default;
$color-status: true !default;
$color-priorities: false !default;
$priority-icon: true !default;
$use-gravatars: true !default;
$use-font-awesome: true !default;
$use-logo: false !default;
$use-retina-logo: false !default;
$use-project-tiles: true !default;
$issue-subject-large: true !default;
$enable-sidebar-toggler: true !default;
$wiki-page-more-vertical-space: true !default;
$top-menu-collapse: false !default;
$agile-board-customize: true !default;
//== Colors
//
$gray-base: #808080 !default;
$gray-darkest: darken($gray-base, 40%) !default;
$gray-darker: darken($gray-base, 33%) !default;
$gray-dark: darken($gray-base, 17%) !default;
$gray: $gray-base !default;
$gray-light: lighten($gray-base, 17%) !default;
$gray-lighter: lighten($gray-base, 35%) !default;
$gray-lightest: lighten($gray-base, 46%) !default;
$blue: #0065ff !default;
$indigo: #4e65e5 !default;
$purple: #614ba6 !default;
$pink: #eb5286 !default;
$red: #e5123d !default;
$orange: #fc8c12 !default;
$yellow: #ffc107 !default;
$green: #029934 !default;
$teal: #00b3ad !default;
$brand-primary: #584492 !default;
$brand-text: #fff !default;
$brand-accent: #deddef !default;
$white: #fff !default;
$black: #000 !default;
$gray: hsl(hue($indigo), 20%, 85%) !default;
$brand-success: #019851 !default;
$brand-info: #409ae3 !default;
$brand-warning: #ed820c !default;
$brand-danger: #e74c3c !default;
$shade-map: (
50: 87.5%,
100: 80%,
200: 65%,
300: 40%,
400: 20%,
500: 0%,
600: 20%,
700: 40%,
800: 65%,
900: 80%,
950: 87.5%
) !default;
$state-success: #b5fbb7 !default;
$state-info: #97cefb !default;
$state-warning: #ffd699 !default;
$state-danger: #f7a6a4 !default;
@function shade($color, $shade: 500) {
$mixer: if($shade < 500, $white, $black);
$saturation: if($shade < 500, 0, math.div($shade - 500, 20));
@return saturate(mix($mixer, $color, map-get($shade-map, $shade)), $saturation);
}
$gray-50: shade($gray, 50) !default;
$gray-100: shade($gray, 100) !default;
$gray-200: shade($gray, 200) !default;
$gray-300: shade($gray, 300) !default;
$gray-400: shade($gray, 400) !default;
$gray-500: $gray !default;
$gray-600: shade($gray, 600) !default;
$gray-700: shade($gray, 700) !default;
$gray-800: shade($gray, 800) !default;
$gray-900: shade($gray, 900) !default;
$gray-950: shade($gray, 950) !default;
$brand-primary: $purple !default;
$brand-text: $white !default;
$brand-accent: shade($brand-primary, 100) !default;
$brand-success: $green !default;
$brand-info: $blue !default;
$brand-warning: $orange !default;
$brand-danger: $red !default;
$state-success: shade($green, 100) !default;
$state-info: shade($blue, 100) !default;
$state-warning: shade($orange, 100) !default;
$state-danger: shade($red, 100) !default;
//== Scaffolding
//
$body-bg: #fff !default;
$text-color: $gray-dark !default;
$body-bg: $white !default;
$text-color: $gray-800 !default;
$link-color: #4183c4 !default;
$link-hover-color: darken($link-color, 10%) !default;
$link-color: shade($blue, 600) !default;
$link-hover-color: $blue !default;
$link-hover-decoration: underline !default;
$link-closed-decoration: line-through !default;
$link-color-issue-closed: $gray !default;
$link-color-project-closed: $gray !default;
$link-color-user-locked: $gray !default;
$link-color-issue-closed: $gray-700 !default;
$link-color-project-closed: $gray-700 !default;
$link-color-user-locked: $gray-700 !default;
//== Typography
//
$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, freesans, sans-serif !default;
$font-family-sans-serif: system-ui,
/* macOS 10.11-10.12 */ -apple-system,
/* Windows 6+ */ Segoe UI,
/* Android 4+ */ Roboto,
/* Ubuntu 10.10+ */ Ubuntu,
/* Gnome 3+ */ Cantarell,
/* KDE Plasma 5+ */ Noto Sans,
/* fallback */ sans-serif,
/* macOS emoji */ "Apple Color Emoji",
/* Windows emoji */ "Segoe UI Emoji",
/* Windows emoji */ "Segoe UI Symbol",
/* Linux emoji */ "Noto Color Emoji" !default;
$font-family-monospace: /* macOS 10.10+ */ Menlo,
/* Windows 6+ */ Consolas,
/* Android 4+ */ Roboto Mono,
/* Ubuntu 10.10+ */ Ubuntu Monospace,
/* KDE Plasma 5+ */ Noto Mono,
/* KDE Plasma 4+ */ Oxygen Mono,
/* Linux/OpenOffice fallback */ Liberation Mono,
/* fallback */ monospace !default;
$font-family-monospace: Consolas, "Liberation Mono", Menlo, "Courier New", Courier, monospace !default;
$font-family-base: $font-family-sans-serif !default;
$font-weight-normal: normal !default;
$font-weight-bold: bold !default;
$font-weight-semi-bold: 500 !default;
$font-weight-bold: 600 !default;
$font-size-base: 14px !default;
$font-size-large: 1.285em !default;
@@ -93,21 +156,28 @@ $line-height-base: 1.428571429 !default; // 20/14
$line-height-large: 1.33 !default;
$line-height-computed: floor(($font-size-base * $line-height-base)) !default; // ~20px
$headings-font-weight: 700 !default;
$headings-font-weight: 600 !default;
$headings-line-height: 1.4 !default;
$headings-anchor-color: $gray-lighter !default;
$headings-anchor-color-active: $gray-light !default;
$headings-anchor-color: $gray-400 !default;
$headings-anchor-color-active: $gray-600 !default;
//== Wiki
//
$wiki-text: #333 !default;
$wiki-text: $gray-950 !default;
$wiki-font-size: 16px !default;
$wiki-line-height: 1.6 !default;
$wiki-preview-bg: $body-bg !default;
$toc-bg: $gray-50 !default;
$toc-border: $gray-300 !default;
$toc-text: $text-color !default;
$toc-link: $link-color !default;
$toc-link-hover: $link-hover-color !default;
$toc-shadow: 0 1px 3px rgba($black, .07) !default;
$toc-active-link: darken($link-color, 10%) !default;
$toc-active-link-hover: darken($toc-active-link, 10%) !default;
$toc-active-link-hover: shade($toc-active-link, 700) !default;
$toc-active-border: $link-color !default;
@@ -128,13 +198,13 @@ $border-radius-base: 3px !default;
$border-radius-large: 4px !default;
$border-radius-small: 2px !default;
$hr-border: $gray-light !default;
$abbr-border-color: $gray-light !default;
$blockquote-border-color: rgba(#000, .15) !default;
$hr-border: $gray-600 !default;
$abbr-border-color: $gray-600 !default;
$blockquote-border-color: rgba($black, .15) !default;
$component-color: $gray-dark !default;
$component-bg: lighten($gray-lightest, 2%) !default;
$component-border: lighten($gray-lighter, 2%) !default;
$component-color: $text-color !default;
$component-bg: $gray-50 !default;
$component-border: $gray-300 !default;
$component-active-color: $brand-text !default;
$component-active-bg: $brand-primary !default;
@@ -142,7 +212,11 @@ $component-active-border: $brand-primary !default;
$font-size-list: .92em !default;
$collapsible-animation-time: .3s !default;
$transition-time: 50ms !default;
$transition-time-long: 150ms !default;
$collapsible-animation-time: 300ms !default;
$collapsible-max-height: 10000px !default;
//== Tables
@@ -151,44 +225,151 @@ $collapsible-animation-time: .3s !default;
$table-cell-padding: 8px !default;
$table-condensed-cell-padding: 5px !default;
$table-list-header-bg: $body-bg !default;
$table-list-header-border: 0 0 2px !default;
$table-list-item-border: 0 0 1px !default;
$table-list-item-border: 0 !default;
$table-list-color-odd-rows: true !default;
$table-list-color-even-rows: false !default;
$table-list-highlight-rows: false !default;
$table-list-highlight-rows: true !default;
$table-bg: transparent !default;
$table-accent-factor: .03 !default;
$table-hover-factor: .03 !default;
$table-bg-accent: rgba(#000, $table-accent-factor) !default;
$table-bg-hover: rgba(#000, $table-hover-factor) !default;
$table-accent-factor: .15 !default;
$table-hover-factor: .4 !default;
$table-bg-accent: rgba($gray-500, $table-accent-factor) !default;
$table-bg-hover: rgba($gray-500, $table-hover-factor) !default;
$table-bg-active: $table-bg-hover !default;
$table-border-color: darken($body-bg, 13.5%) !default;
$table-border-color: $gray-300 !default;
$table-color-odd-factor: if($table-list-color-odd-rows, $table-accent-factor * .8, $table-accent-factor * .5) !default;
$table-color-even-factor: if($table-list-color-even-rows, $table-accent-factor * .8, $table-accent-factor * .5) !default;
$table-color-hover-factor: $table-hover-factor * .5 !default;
$table-color-border-shade: 100 !default;
//== Issue statuses
//
$status-default-bg: $brand-primary !default;
$status-default-color: $brand-text !default;
$status-default-colors-map: (
status-1: (
background: shade($blue, 500),
color: $white
),
closed: (
background: shade($red, 500),
color: $white
)
) !default;
$status-custom-colors-map: () !default;
$status-colors-map: map-merge($status-default-colors-map, $status-custom-colors-map);
//== Trackers priorities
//
$priority-lowest-bg: #dff4d0 !default;
$priority-lowest-text: #676 !default;
$priority-lowest-link: #096 !default;
$priority-icon-size: 14px !default;
$priority-icon-space: 5px !default;
$priority-default-icons-map: (
lowest: (
icon: "priority-minor.svg",
color: $green
),
low2: (
icon: "priority-lowest.svg",
color: mix($teal, $green)
),
low3: (
icon: "priority-low.svg",
color: $teal
),
default: (
icon: "priority-medium.svg",
color: $blue
),
high5: (
icon: "priority-high.svg",
color: $purple
),
high4: (
icon: "priority-high.svg",
color: $orange
),
high3: (
icon: "priority-highest.svg",
color: mix($red, $orange)
),
high2: (
icon: "priority-major.svg",
color: $red
),
highest: (
icon: "priority-critical.svg",
color: shade($red, 600)
)
) !default;
$priority-custom-icons-map: () !default;
$priority-icons-map: map-merge($priority-default-icons-map, $priority-custom-icons-map);
$priority-default-bg: #fff !default;
$priority-default-text: $text-color !default;
$priority-default-link: $link-color !default;
$priority-high3-bg: #d5eaff !default;
$priority-high3-text: #556 !default;
$priority-high3-link: #05a !default;
$priority-high2-bg: #ffe1d7 !default;
$priority-high2-text: #855 !default;
$priority-high2-link: #b04 !default;
$priority-highest-bg: #ffa5a5 !default;
$priority-highest-text: #944 !default;
$priority-highest-link: #a03 !default;
$priority-default-color-map: (
lowest: (
border: shade($green, $table-color-border-shade),
background: $green,
color: $text-color,
link: shade($green, 700),
),
low2: (
border: shade(mix($teal, $green), $table-color-border-shade),
background: mix($teal, $green),
color: $text-color,
link: shade(mix($teal, $green), 700),
),
low3: (
border: shade($teal, $table-color-border-shade),
background: $teal,
color: $text-color,
link: shade($teal, 700),
),
default: (
border: shade($blue, $table-color-border-shade),
background: $blue,
color: $text-color,
link: shade($blue, 700),
),
high5: (
border: shade($purple, $table-color-border-shade),
background: $purple,
color: $text-color,
link: shade($purple, 700),
),
high4: (
border: shade($orange, $table-color-border-shade),
background: $orange,
color: $text-color,
link: shade($orange, 700),
),
high3: (
border: shade(mix($red, $orange), $table-color-border-shade),
background: mix($red, $orange),
color: $text-color,
link: shade(mix($red, $orange), 700),
),
high2: (
border: shade($red, $table-color-border-shade),
background: $red,
color: $text-color,
link: shade($red, 700),
),
highest: (
border: shade($red, $table-color-border-shade),
background: $red,
color: $text-color,
link: shade($red, 700),
)
) !default;
$priority-custom-color-map: () !default;
$priority-color-map: map-merge($priority-default-color-map, $priority-custom-color-map);
//== Trackers links
@@ -197,37 +378,37 @@ $priority-highest-link: #a03 !default;
$tracker-inline-padding: 1px 5px !default;
$tracker-list-padding: 0 6px !default;
$tracker-default-bg: #668 !default;
$tracker-default-text: $brand-text !default;
$tracker-default-bg: $gray-700 !default;
$tracker-default-text: $white !default;
$tracker-default-colors-map: (
1: (
background: $brand-danger,
color: $brand-text
background: $red,
color: $white
),
2: (
background: $brand-info,
color: $brand-text
background: $blue,
color: $white
),
3: (
background: $brand-success,
color: $brand-text
background: $green,
color: $white
),
4: (
background: $brand-primary,
color: $brand-text
background: $purple,
color: $white
),
5: (
background: $brand-warning,
color: $brand-text
background: $orange,
color: $white
),
6: (
background: mix($brand-success, $brand-info, 50%),
color: $brand-text
background: $teal,
color: $white
),
7: (
background: mix($brand-primary, $brand-warning, 50%),
color: $brand-text
background: $indigo,
color: $white
)
) !default;
$tracker-custom-colors-map: () !default;
@@ -237,32 +418,30 @@ $tracker-colors-map: map-merge($tracker-default-colors-map, $tracker-
//== Diffs
//
$diff-out-color: #511 !default;
$diff-out-bg: #fbb !default;
$diff-out-bg-light: rgba($diff-out-bg, .3) !default;
$diff-out-bg: saturate(shade($red, 100), 50%) !default;
$diff-out-bg-light: rgba($diff-out-bg, .4) !default;
$diff-in-color: #350 !default;
$diff-in-bg: #afa !default;
$diff-in-bg-light: rgba($diff-in-bg, .3) !default;
$diff-in-bg: saturate(shade($green, 100), 50%) !default;
$diff-in-bg-light: rgba($diff-in-bg, .4) !default;
//== Journal changes
//
$journal-old-value-color: #430 !default;
$journal-old-value-bg: rgba(#ffeaaa, .3) !default;
$journal-new-value-color: #350 !default;
$journal-new-value-bg: rgba(#bffbbf, .3) !default;
$journal-old-value-color: saturate(shade($orange, 800), 25%) !default;
$journal-old-value-bg: saturate(shade($orange, 50), 50%) !default;
$journal-new-value-color: saturate(shade($green, 800), 25%) !default;
$journal-new-value-bg: saturate(shade($green, 50), 50%) !default;
//== Changesets
//
$changeset-add-color: $brand-success !default;
$changeset-modified-color: $brand-warning !default;
$changeset-copied-color: $brand-info !default;
$changeset-renamed-color: $brand-primary !default;
$changeset-deleted-color: $brand-danger !default;
$changeset-added-color: $green !default;
$changeset-modified-color: $orange !default;
$changeset-copied-color: $purple !default;
$changeset-renamed-color: $blue !default;
$changeset-deleted-color: $red !default;
//== Buttons
@@ -271,47 +450,73 @@ $changeset-deleted-color: $brand-danger !default;
$btn-font-weight: normal !default;
$btn-padding-vertical: 3px !default;
$btn-padding-horizontal: 12px !default;
$btn-padding-horizontal-small: 8px !default;
$btn-link-color: $link-color !default;
$btn-link-bg: $body-bg !default;
$btn-link-border: $body-bg !default;
$btn-default-color: $gray-darkest !default;
$btn-default-bg: $gray-lightest !default;
$btn-default-border: $gray-lighter !default;
$btn-default-color: $gray-900 !default;
$btn-default-bg: $gray-100 !default;
$btn-default-border: $gray-500 !default;
$btn-default-icon-color: $gray-700 !default;
$btn-primary-color: #fff !default;
$btn-primary-bg: $brand-info !default;
$btn-primary-color: $white !default;
$btn-primary-bg: $blue !default;
$btn-primary-border: $btn-primary-bg !default;
$btn-success-color: #fff !default;
$btn-success-bg: $brand-success !default;
$btn-success-color: $white !default;
$btn-success-bg: $green !default;
$btn-success-border: $btn-success-bg !default;
//== Action icons
//
$icon-width: 20px !default;
$icon-opacity: .7 !default;
$icon-hover-opacity: 1 !default;
$icon-color-map: (
default: (
normal: shade($brand-info, 600),
hover: shade($brand-info, 500)
),
success: (
normal: shade($brand-success, 600),
hover: shade($brand-success, 500)
),
danger: (
normal: shade($brand-danger, 600),
hover: shade($brand-danger, 500)
)
) !default;
//== Highlights
//
$highlight-bg: #fff9c8 !default;
$highlight-border: #ccb37b !default;
$highlight-text: #755e40 !default;
$highlight-link: #005f97 !default;
$highlight-bg: shade($yellow, 200) !default;
$highlight-border: shade($yellow, 600) !default;
$highlight-text: shade($yellow, 800) !default;
$highlight-link: mix($yellow, $link-color) !default;
//== Forms
//
$input-bg: #fff !default;
$input-bg-disabled: $gray-lighter !default;
$input-bg: $white !default;
$input-bg-disabled: $gray-300 !default;
$input-color: $gray-dark !default;
$input-border: #ccc !default;
$input-color: $text-color !default;
$input-border: $gray-500 !default;
$input-border-radius: $border-radius-small !default;
$input-border-radius-large: $border-radius-large !default;
$input-border-focus: #51a7e8 !default;
$input-color-placeholder: #999 !default;
$input-border-focus: saturate($brand-primary, 25%) !default;
$input-border-focus-alpha: .6 !default;
$input-shadow-focus-alpha: .2 !default;
$input-color-placeholder: $gray-600 !default;
$input-padding-vertical: $btn-padding-vertical !default;
$input-padding-horizontal: 8px !default;
@@ -322,17 +527,24 @@ $label-width: 160px !default;
$label-wide-width: 280px !default;
$label-space: 10px !default;
$legend-color: $gray-dark !default;
$legend-border-color: #e5e5e5 !default;
$legend-color: $gray-800 !default;
$legend-border-color: $gray-200 !default;
$check-input-gutter: 18px !default;
$check-input-margin-vertical: 3px !default;
$check-input-margin-btn-v: 7px !default;
$check-input-margin-horizontal: 8px !default;
$check-list-max-height: 20 * $line-height-computed;
$check-list-offset-top: $input-padding-vertical + 1px;
//== Top
//
$top-menu-bg: darken($brand-primary, 15%) !default;
$top-menu-text: $brand-accent !default;
$top-menu-link: $brand-accent !default;
$top-menu-link-hover: $brand-text !default;
$top-menu-bg: shade($brand-primary, 700) !default;
$top-menu-text: shade($brand-primary, 100) !default;
$top-menu-link: shade($brand-primary, 100) !default;
$top-menu-link-hover: shade($brand-primary, 50) !default;
$header-bg: $brand-primary !default;
$header-text: $brand-text !default;
@@ -343,23 +555,42 @@ $header-padding-horizontal: $padding-side !default;
$header-title-size: $font-size-h3 !default;
$header-title-line-height: $line-height-computed * 1.5 !default;
$responsive-header-height: 54px !default;
$flyout-menu-bg: shade($header-bg, 700) !default;
$flyout-menu-text: $white !default;
$flyout-menu-link: $white !default;
$flyout-menu-link-active-bg: shade($header-bg, 50) !default;
$flyout-menu-link-active: $text-color !default;
$flyout-menu-header-bg: shade($header-bg, 800) !default;
$flyout-menu-header-border: shade($header-bg, 800) !default;
$flyout-menu-header-text: $white !default;
$quick-search-width: 200px !default;
$quick-search-border: shade($header-bg, 800) !default;
$quick-search-border-focus: shade($header-bg, 400) !default;
$quick-search-box-width: 300px !default;
$quick-search-dropdown-bg: $body-bg !default;
$quick-search-dropdown-border: $gray-400 !default;
$logo-image-width: 60px !default;
$logo-image-height: 40px !default;
$logo-position-horizontal: $header-padding-vertical !default;
$logo-position-vertical: center !default;
$logo-space: floor($header-padding-vertical / 2) !default;
$logo-space: floor($header-padding-vertical * .5) !default;
$main-menu-bg: $gray-lightest !default;
$main-menu-bg-hover: $gray-lightest !default;
$main-menu-link: $gray-darker !default;
$main-menu-link-active: #000 !default;
$main-menu-border: $gray-lighter !default;
$main-menu-shadow-hover: $gray-light !default;
$main-menu-bg: $gray-100 !default;
$main-menu-bg-hover: $gray-100 !default;
$main-menu-bg-active: transparent !default;
$main-menu-link: $gray-900 !default;
$main-menu-link-active: $black !default;
$main-menu-border: $gray-400 !default;
$main-menu-shadow-hover: $gray-600 !default;
$main-menu-shadow-width: 3px !default;
$main-menu-shadow-active: $brand-primary !default;
$main-menu-padding-vertical: $padding-large-vertical !default;
$main-menu-padding-horizontal: 5px !default;
$main-menu-dropdown-bg: lighten($main-menu-bg, 3%);
$main-menu-dropdown-bg: $gray-50;
//== Pagination
@@ -368,21 +599,21 @@ $main-menu-dropdown-bg: lighten($main-menu-bg, 3%);
$pagination-padding-vertical: $btn-padding-vertical !default;
$pagination-padding-horizontal: 10px !default;
$pagination-color: $link-color !default;
$pagination-bg: #f9f9f9 !default;
$pagination-border: #ddd !default;
$pagination-color: $gray-900 !default;
$pagination-bg: $gray-200 !default;
$pagination-border: $gray-200 !default;
$pagination-hover-color: $link-hover-color !default;
$pagination-hover-bg: $gray-lightest !default;
$pagination-hover-border: #bbb !default;
$pagination-hover-color: $gray-900 !default;
$pagination-hover-bg: $gray-300 !default;
$pagination-hover-border: $gray-300 !default;
$pagination-active-color: #fff !default;
$pagination-active-color: $brand-text !default;
$pagination-active-bg: $brand-primary !default;
$pagination-active-border: $brand-primary !default;
$pagination-inactive-color: #ccc !default;
$pagination-inactive-bg: #fff !default;
$pagination-inactive-border: #eee !default;
$pagination-inactive-color: $gray-500 !default;
$pagination-inactive-bg: $gray-50 !default;
$pagination-inactive-border: $gray-100 !default;
//== Tabs
@@ -390,8 +621,9 @@ $pagination-inactive-border: #eee !default;
$tab-padding-vertical: 5px !default;
$tab-padding-horizontal: 8px !default;
$tab-border: $gray-lighter !default;
$tab-hover-bg: $gray-lightest !default;
$tab-border: $gray-500 !default;
$tab-hover-bg: $gray-100 !default;
$tab-hover-text: $gray-950 !default;
$tab-hover-border: $tab-hover-bg !default;
$tab-active-bg: $body-bg !default;
$tab-active-text: $text-color !default;
@@ -405,40 +637,47 @@ $sidebar-width: 270px !default;
$sidebar-padding-vertical: $padding-base-vertical !default;
$sidebar-padding-horizontal: $padding-side !default;
$sidebar-width-computed: $sidebar-width - ($sidebar-padding-horizontal * 2) - 1px !default;
$sidebar-link-hover-bg: $gray-lightest !default;
$sidebar-link-hover-bg: $gray-200 !default;
$sidebar-link-hover-text: $gray-900 !default;
$sidebar-link-active-bg: $body-bg !default;
$sidebar-link-active-border: $gray-lighter !default;
$sidebar-link-active-side: $brand-danger !default;
$sidebar-link-active-text: $gray-darkest !default;
$sidebar-link-active-border: $gray-400 !default;
$sidebar-link-active-side: $red !default;
$sidebar-link-active-text: $gray-950 !default;
//== Flash messages (alerts)
//
$flash-success-bg: #5cb85c !default;
$flash-success-border: darken($flash-success-bg, 5%) !default;
$flash-success-text: #fff !default;
$flash-success-link: #fff !default;
$flash-success-bg: shade($green, 400) !default;
$flash-success-border: shade($green, 500) !default;
$flash-success-text: $white !default;
$flash-success-link: $white !default;
$flash-warning-bg: #fde3a7 !default;
$flash-warning-border: darken($flash-warning-bg, 15%) !default;
$flash-warning-text: #b45e10 !default;
$flash-warning-link: #a0540e !default;
$flash-info-bg: shade($blue, 100) !default;
$flash-info-border: shade($blue, 200) !default;
$flash-info-text: shade($blue, 800) !default;
$flash-info-link: shade($blue, 900) !default;
$flash-error-bg: #d9534f !default;
$flash-error-border: darken($flash-error-bg, 5%) !default;
$flash-error-text: #fff !default;
$flash-error-link: #fff !default;
$flash-warning-bg: shade($yellow, 200) !default;
$flash-warning-border: shade($yellow, 300) !default;
$flash-warning-text: shade($yellow, 800) !default;
$flash-warning-link: shade($yellow, 900) !default;
$flash-error-bg: $red !default;
$flash-error-border: shade($red, 600) !default;
$flash-error-text: $white !default;
$flash-error-link: $white !default;
//== Progress bars
//
$progress-bg: #fff !default;
$progress-height: 12px !default;
$progress-bg: rgba($gray-500, .5) !default;
$progress-bar-bg: $brand-primary !default;
$progress-bar-success-bg: lighten($brand-success, 10%) !default;
$progress-bar-danger-bg: lighten($brand-danger, 10%) !default;
$progress-bar-info-bg: lighten($brand-info, 20%) !default;
$progress-bar-success-bg: $brand-success !default;
$progress-bar-danger-bg: $brand-danger !default;
$progress-bar-info-bg: $brand-info !default;
//== Panels
@@ -447,34 +686,34 @@ $progress-bar-info-bg: lighten($brand-info, 20%) !default;
$panel-body-padding-vertical: 15px !default;
$panel-body-padding-horizontal: 15px !default;
$panel-body-padding: $panel-body-padding-vertical $panel-body-padding-horizontal !default;
$panel-color: #555 !default;
$panel-bg: #f9f9f9 !default;
$panel-border: #ccc !default;
$panel-color: $text-color !default;
$panel-bg: $gray-50 !default;
$panel-border: $gray-400 !default;
$panel-border-radius: $border-radius-base !default;
$panel-shadow: 0 1px 2px rgba(#000, .1),
0 3px 8px rgba(#000, .07) !default;
$panel-shadow: 0 1px 2px rgba($black, .07),
0 3px 8px rgba($black, .04) !default;
//== Tooltips
//
$tooltip-bg: #fff !default;
$tooltip-bg: $white !default;
$tooltip-border-width: 0 !default;
$tooltip-border: #ccc !default;
$tooltip-text: $gray-dark !default;
$tooltip-border: $gray-500 !default;
$tooltip-text: $gray-800 !default;
$tooltip-link: $link-color !default;
//== Issue
//
$issue-bg: #f9f9f9 !default;
$issue-border: #ccc !default;
$issue-bg: $gray-50 !default;
$issue-border: $gray-500 !default;
$issue-text: $text-color !default;
$issue-padding: 15px !default;
$issue-gravatar-size: 50px !default;
$issue-heading-size: 1.5 !default;
$issue-heading-size: 1.75 !default;
$issue-attribute-padding-v: 3px !default;
$issue-attribute-padding-h: 5px !default;
@@ -483,16 +722,33 @@ $issue-attribute-padding-h: 5px !default;
//== Speech "bubbles"
//
$bubble-bg: $issue-bg !default;
$bubble-border: $issue-border !default;
$bubble-text: $issue-text !default;
$bubble-gravatar-size: 24px !default;
$bubble-gravatar-space: 12px !default;
$bubble-padding-vertical: 8px !default;
$bubble-padding-horizontal: 15px !default;
$bubble-padding-horizontal: 12px !default;
$bubble-target-border: saturate($brand-primary, 25%) !default;
$bubble-target-shadow-alpha: .2 !default;
//== Badges
//
$badge-space: 2px !default;
$badge-padding-v: 0 !default;
$badge-padding-h: 5px !default;
$badge-border-radius: $border-radius-base !default;
$badge-font-size: $font-size-small !default;
$badge-font-weight: $font-weight-bold !default;
//== Media queries breakpoints
//
$screen-xs: 480px !default;
$screen-xs-min: $screen-xs !default;
$screen-sm: 768px !default;
$screen-sm-min: $screen-sm !default;
@@ -507,12 +763,92 @@ $screen-xs-max: ($screen-sm-min - 1) !default;
$screen-sm-max: ($screen-md-min - 1) !default;
$screen-md-max: ($screen-lg-min - 1) !default;
$redmine-responsive-max: 899px !default;
$redmine-responsive-min: 900px !default;
$top-menu-collapse-breakpoint: $screen-lg-min !default;
//== Login form
//
$login-form-width: 24em !default;
$login-form-label-width: 8em !default;
$login-form-box-breakpoint: $screen-xs-min !default;
$login-form-adjustments-map: (
-2: da en en-GB ko pl tr uk,
1: fr hr nl sr-YU sv,
2: el eu lt pt sk sr th
) !default;
//== Content widths
//
$width-sm: $screen-sm - ($padding-side * 2) !default;
$width-md: $screen-md - ($padding-side * 2) !default;
$width-lg: $screen-lg - ($padding-side * 2) !default;
//== Redmine Agile plugin
// https://www.redmineup.com/pages/plugins/agile
//
$agile-board-background: $gray-100 !default;
$agile-issue-card-margin: 8px 10px !default;
$agile-issue-card-padding: 7px !default;
$agile-issue-card-border: $gray-500;
$agile-issue-card-border-width: 0 0 0 5px;
$agile-issue-card-border-radius: $border-radius-large !default;
$agile-issue-card-background: $white !default;
$agile-issue-card-color: $text-color !default;
$agile-issue-card-closed-background: $gray-300 !default;
$agile-issue-card-default-color-map: (
bk-green: (
border: $green,
background: scale-color($green, $saturation: -5%, $lightness: 80%),
link: shade($green, 700),
),
bk-blue: (
border: $blue,
background: scale-color($blue, $saturation: 50%, $lightness: 80%),
link: shade($blue, 700),
),
bk-turquoise: (
border: $teal,
background: scale-color($teal, $saturation: -5%, $lightness: 80%),
link: shade($teal, 700),
),
bk-lightgreen: (
border: adjust-color($green, $hue: -45deg),
background: scale-color(adjust-color($green, $hue: -45deg), $saturation: 75%, $lightness: 80%),
link: shade(adjust-color($green, $hue: -45deg), 700),
),
bk-yellow: (
border: adjust-color($yellow, $hue: 2deg),
background: scale-color(adjust-color($yellow, $hue: 2deg), $saturation: 75%, $lightness: 80%),
link: shade($yellow, 700),
),
bk-orange: (
border: $orange,
background: scale-color($orange, $saturation: 75%, $lightness: 80%),
link: shade($orange, 700),
),
bk-red: (
border: $red,
background: scale-color($red, $saturation: 75%, $lightness: 85%),
link: shade($red, 700),
),
bk-purple: (
border: $purple,
background: scale-color($purple, $saturation: 75%, $lightness: 85%),
link: shade($purple, 700),
),
bk-gray: (
border: $gray-600,
background: $gray-300,
link: $link-color,
),
) !default;
$agile-issue-card-custom-color-map: () !default;
$agile-issue-card-color-map: map-merge($agile-issue-card-default-color-map, $agile-issue-card-custom-color-map);

View File

@@ -1,4 +1,5 @@
@import "variables";
@import "functions";
@import "mixins";
@import "lib/normalize";
@@ -9,11 +10,13 @@
//
@import "components/base";
@import "components/badges";
@import "components/buttons";
@import "components/forms";
@import "components/tabs";
@import "components/pagination";
@import "components/content";
@import "components/context-menu";
@import "components/gravatar";
@import "components/list";
@import "components/simple-list";
@@ -21,6 +24,7 @@
@import "components/login";
@import "components/admin";
@import "components/coderay";
@import "components/rouge";
@import "components/gantt";
@import "components/calendar";
@import "components/progress";
@@ -28,10 +32,12 @@
@import "components/elements";
@import "components/jquery-ui";
@import "components/icons";
@import "components/dropdown";
@import "components/top";
@import "components/jstoolbar";
@import "components/flash";
@import "components/image-base64";
@import "components/responsive";
@import "components/print";

View File

@@ -3,6 +3,18 @@
// --------------------------------------------------
#admin-menu {
ul:nth-child(n) {
li {
list-style-type: none;
> a:not(.icon-only) {
padding-left: $sidebar-padding-horizontal + 5px + $icon-width;
background-repeat: no-repeat;
background-position: $sidebar-padding-horizontal center;
}
}
}
#admin-index > & {
ul {
margin: 0;
@@ -15,20 +27,10 @@
a {
display: inline-block;
padding-left: 5px + 20px;
padding-left: 5px + $icon-width;
background-position: 0 center;
}
}
li {
list-style-type: none;
> a {
padding-left: $sidebar-padding-horizontal + 5px + 20px;
background-repeat: no-repeat;
background-position: $sidebar-padding-horizontal center;
}
}
}
@@ -48,8 +50,8 @@ table.memberships {
table.permissions {
td.role {
color: $gray;
font-weight: normal;
color: $gray-700;
font-weight: $font-weight-normal;
text-align: center;
vertical-align: bottom;
}
@@ -59,6 +61,13 @@ table.permissions {
//== Workflows
//
.controller-workflows {
table.list,
fieldset.collapsible {
margin-bottom: $line-height-computed;
}
}
table.transitions {
td.enabled {
background: $state-success;
@@ -76,7 +85,7 @@ table.transitions {
table.fields_permissions {
td.readonly {
background: $gray-light;
background: $gray-600;
}
td.required {
@@ -85,18 +94,24 @@ table.fields_permissions {
}
//== Enumerations
//== Custom fields -> Issues -> Key values
//
.controller-enumerations.action-index {
#content {
> h3,
> .list {
margin-bottom: $line-height-computed / 2;
#custom_field_enumerations {
padding-left: 0;
list-style: none;
li {
min-height: $input-height-base;
padding: 1px 0;
.sort-handle,
label {
line-height: $input-height-base;
}
> p {
margin-bottom: $line-height-computed * 2;
label input {
vertical-align: baseline;
}
}
}

View File

@@ -0,0 +1,59 @@
tr.group .count,
span.private,
.badge {
display: inline-block;
position: relative;
top: -1px;
box-sizing: border-box;
min-width: 1em;
margin-right: $badge-space;
margin-left: $badge-space;
padding: $badge-padding-v $badge-padding-h;
border: 1px solid;
border-radius: $badge-border-radius;
font-size: $badge-font-size;
font-weight: $badge-font-weight;
text-align: center;
text-decoration: none;
text-transform: uppercase;
}
span.private,
.badge-private {
padding: ($badge-padding-v + 1px) ($badge-padding-h + 1px);
border: 0;
background: $brand-warning;
color: $brand-text;
h3 & {
font-size: $font-size-small-px;
}
}
tr.group .count,
.badge-count {
padding: ($badge-padding-v + 1px) ($badge-padding-h + 1px);
border: 0;
background: $brand-primary;
color: $brand-text;
}
.badge-status-open {
border-color: $blue;
color: $blue;
}
.badge-status-locked {
border-color: $gray-600;
color: $gray-600;
}
.badge-status-closed {
border-color: $green;
color: $green;
}
.badge-issues-count {
border-color: $gray-400;
background-color: $gray-100;
}

View File

@@ -4,6 +4,7 @@
html {
overflow-y: scroll;
tab-size: 4;
}
body {
@@ -41,18 +42,32 @@ a {
}
}
// Remove the tapping delay on clickable elements
a,
area,
button,
input,
label,
select,
summary,
textarea,
[tabindex] {
touch-action: manipulation;
}
h1 {
margin: 0;
font-size: 2em; // ~28px
line-height: 30px;
font-size: 2em;
font-weight: $font-weight-semi-bold;
line-height: $line-height-large * .825;
}
h2 {
margin-top: 0;
margin-bottom: $line-height-computed;
font-size: 1.43em; // ~20px
font-weight: 500;
line-height: $line-height-computed;
font-size: 1.43em;
font-weight: $font-weight-semi-bold;
line-height: $line-height-large;
img {
vertical-align: middle;
@@ -62,19 +77,20 @@ h2 {
h3 {
margin-top: 0;
margin-bottom: $line-height-computed;
font-size: 1.14em; // ~16px
font-weight: 500;
line-height: $line-height-computed;
font-size: 1.14em;
font-weight: $font-weight-semi-bold;
line-height: $line-height-large;
}
h4 {
margin-top: 0;
font-size: 1em;
font-weight: 500;
font-weight: $font-weight-semi-bold;
line-height: $line-height-base;
}
p {
margin: 0 0 ($line-height-computed / 2);
margin: 0 0 ($line-height-computed * .5);
}
small {
@@ -82,16 +98,35 @@ small {
}
table {
th {
font-weight: $font-weight-bold;
}
th,
td {
padding: $table-condensed-cell-padding $table-cell-padding;
}
p {
margin: 0;
}
form {
p {
margin-bottom: ($line-height-computed * .5);
&:last-child {
margin-bottom: 0;
}
}
}
}
ul,
ol {
margin-top: 0;
margin-bottom: ($line-height-computed / 2);
margin-bottom: ($line-height-computed * .5);
padding-left: 1.5em;
ul,
ol {
@@ -123,27 +158,27 @@ samp {
}
hr {
margin-top: $line-height-computed;
margin-top: $line-height-computed;
margin-bottom: $line-height-computed;
border: 0;
border-top: 1px solid $hr-border;
}
abbr[title] {
border-bottom: 1px dotted $abbr-border-color;
cursor: help;
li & {
margin-top: $line-height-computed * .5;
margin-bottom: $line-height-computed * .5;
}
}
blockquote {
margin: 0 0 $line-height-computed;
padding: floor($line-height-computed / 4) $padding-large-horizontal;
padding: floor($line-height-computed * .25) $padding-large-horizontal;
border-left: 4px solid $blockquote-border-color;
>:first-child {
> :first-child {
margin-top: 0;
}
>:last-child {
> :last-child {
margin-bottom: 0;
}
}

View File

@@ -4,37 +4,35 @@
input[type="button"],
input[type="submit"],
input[type="reset"],
button {
@include button-size($btn-padding-vertical, $btn-padding-horizontal, $font-size-base, $line-height-base, $border-radius-base);
display: inline-block;
margin-bottom: 0;
transition: background-color ease-in-out .07s,
border-color ease-in-out .07s,
box-shadow ease-in-out .07s;
transition:
border-color $transition-time ease-in-out,
background-color $transition-time ease-in-out,
box-shadow $transition-time ease-in-out;
border: 1px solid;
font-weight: $btn-font-weight;
text-align: center;
vertical-align: top;
white-space: nowrap;
cursor: pointer;
user-select: none;
@include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border); // scss-lint:disable DeclarationOrder
@include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
&:hover,
&:focus {
outline: 0;
text-decoration: none;
}
&:active {
outline: 0;
}
&.disabled,
&[disabled],
fieldset[disabled] & {
pointer-events: none; // Future-proof disabling of clicks
box-shadow: none;
opacity: .65;
box-shadow: none;
pointer-events: none; // Future-proof disabling of clicks
}
}
@@ -44,17 +42,17 @@ button {
form {
input[type="submit"] {
margin-right: 5px;
margin-right: 2px;
+ input {
@include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
}
+ a {
margin-right: 5px;
~ a {
margin-right: 2px;
+ a {
margin-left: 5px;
margin-left: 2px;
}
}
}
@@ -65,7 +63,7 @@ form {
//
form[action*="repository/diff"] {
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
@@ -85,41 +83,89 @@ form[action*="repository/diff"] {
//== Button links
//
p.buttons,
.other-formats > span,
#wiki_add_attachment > p {
> a {
#wiki_add_attachment > p,
#content > .contextual,
#content > .contextual > span:not(.drdn),
#query_form > .contextual,
#query_form_with_buttons > .contextual {
> a,
> span:not(.drdn) {
display: inline-block;
padding: $input-padding-vertical $input-padding-horizontal;
border: 1px solid $pagination-border;
border-radius: $input-border-radius;
margin-right: 1px;
margin-left: 1px;
padding: $btn-padding-vertical $btn-padding-horizontal-small;
transition:
border-color $transition-time ease-in-out,
background-color $transition-time ease-in-out,
color $transition-time ease-in-out;
border: 1px solid;
border-radius: $border-radius-base;
font-size: $font-size-base;
&.icon {
padding-left: 20px + $btn-padding-horizontal-small;
background-position: $btn-padding-horizontal-small 50%;
}
}
> a {
border-color: $pagination-border;
background-color: $pagination-bg;
text-shadow: 1px 1px 0 #fff;
color: $pagination-color;
&:first-child {
margin-left: 0;
}
&:last-child {
margin-right: 0;
}
&:hover,
&:focus {
border-color: $pagination-hover-border;
outline: 0;
background-color: $pagination-hover-bg;
color: $pagination-hover-color;
text-decoration: none;
}
}
&:active {
outline: 0;
box-shadow: inset 0 3px 4px -2px rgba(#000, .1);
}
> span:not(.drdn) {
border-color: $pagination-inactive-border;
background-color: $pagination-inactive-bg;
color: $pagination-inactive-color;
}
}
@if $use-font-awesome {
&.icon {
padding-left: 20px + $padding-small-vertical + $input-padding-vertical;
}
} @else {
&.icon,
&.atom {
padding-left: 20px + $input-padding-vertical;
background-position: $padding-small-vertical 50%;
}
//== Submit + cancel
//
#issue-form,
.mypage-box,
.journal,
.edit_news,
.edit_content,
.edit_time_entry,
.edit_membership {
input[type="submit"] + a {
margin-left: ceil($btn-padding-horizontal-small * .5);
}
}
//== Apply + clear
//
form {
input,
button,
select {
~ a {
margin-left: ceil($btn-padding-horizontal-small * .5);
line-height: $input-height-base;
}
}
}
@@ -130,6 +176,10 @@ p.buttons,
p.buttons {
margin-bottom: $line-height-computed;
a {
line-height: $line-height-base;
}
}
@@ -140,10 +190,21 @@ p.buttons {
margin: $line-height-computed 0 0;
text-align: right;
.pagination + &,
#wiki_add_attachment + & {
margin-top: 0;
float: right;
> span {
margin-right: 1px;
margin-left: 1px;
&:last-child {
margin-right: 0;
}
}
@media screen and (min-width: $redmine-responsive-min) {
.pagination + &,
#wiki_add_attachment + & {
margin-top: 0;
float: right;
}
}
}
@@ -153,18 +214,42 @@ p.buttons {
.query-columns {
select {
width: auto !important; // scss-lint:disable ImportantRule
width: auto !important; // stylelint-disable-line declaration-no-important
min-width: 130px;
}
label + & {
margin-left: $padding-side;
}
@at-root span#{&} {
> span {
display: inline-block;
height: 100%;
vertical-align: middle;
}
label {
display: block;
margin-bottom: $line-height-computed * .5;
line-height: initial;
}
}
.buttons {
vertical-align: middle;
br {
display: none;
}
input[type="button"] {
display: block;
width: 32px;
margin-bottom: 4px;
padding-right: 1px;
padding-left: 1px;
@include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); // scss-lint:disable DeclarationOrder
@include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
}
}
}
@@ -175,24 +260,28 @@ p.buttons {
a[data-expands],
.toggle-multiselect {
@extend %image-toggle-plus;
display: inline-block;
position: relative;
top: 3px;
padding: 2px 8px;
padding: 10px;
border: 1px solid;
border-radius: $border-radius-base;
background-image: inline-svg("plus.svg", (path: (fill: $btn-default-icon-color)));
background-repeat: no-repeat;
background-position: 2px 2px;
cursor: pointer;
font-size: 0;
vertical-align: top;
cursor: pointer;
user-select: none;
@include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); // scss-lint:disable DeclarationOrder
@include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
&.icon-only::before {
content: none;
}
}
a[data-expands] {
display: inline-block;
margin-right: 10px;
padding: 10px;
> .toggle-multiselect {
padding: 0;
@@ -204,3 +293,8 @@ a[data-expands] {
display: none;
}
}
a.icon-toggle-minus[data-expands],
select[multiple="multiple"] + .toggle-multiselect {
background-image: inline-svg("minus.svg", (path: (fill: $btn-default-icon-color)));
}

View File

@@ -2,7 +2,6 @@
// Calendar
// --------------------------------------------------
table.cal {
width: 100%;
margin-bottom: $line-height-computed;
@@ -11,7 +10,7 @@ table.cal {
thead th {
width: 14%;
padding: $table-condensed-cell-padding;
background-color: $table-bg-hover;
background-color: $table-bg-active;
&.week-number {
width: auto;
@@ -30,7 +29,7 @@ table.cal {
&.week-number {
border: 0 none;
background-color: $table-bg-hover;
background-color: $table-bg-active;
font-size: 1em;
text-align: right;
}
@@ -42,7 +41,11 @@ table.cal {
}
&.odd p.day-num {
color: $gray-light;
color: $gray-600;
}
&.nwday {
background: $table-bg-accent;
}
&.today {
@@ -55,26 +58,118 @@ table.cal {
}
}
ul.cal {
display: grid;
grid-template-columns: 2rem repeat(7, 1fr);
width: 100%;
margin: 0;
padding: 0;
border-spacing: 0;
list-style: none;
border: 1px solid $table-border-color;
border-radius: 3px;
li {
&.calhead {
padding: 4px;
background-color: $table-bg-active;
font-weight: bold;
text-align: center;
}
&.week-number {
padding: 4px;
border: none;
background-color: $table-bg-active;
font-size: 1em;
text-align: center;
span.label-week {
display: none;
}
}
&.calbody {
min-height: calc(1.2em * 6);
padding: 2px;
border: 1px solid $table-border-color;
border-right: 0;
border-bottom: 0;
font-size: 1em;
line-height: 1.6;
vertical-align: top;
p.day-num {
font-size: 1.1em;
text-align: right;
.abbr-day {
display: none;
}
}
.day-letter {
display: none;
}
&.odd {
p.day-num {
color: $gray-600;
}
}
&.today {
background: $highlight-bg;
p.day-num {
font-weight: $font-weight-bold;
}
}
.icon {
padding-top: 2px;
padding-bottom: 3px;
}
&.nwday:not(.odd) {
background-color: $table-bg-accent;
}
}
}
}
table.cal .starting a,
ul.cal .starting a,
p.cal.legend .starting,
table.cal .ending a,
ul.cal .ending a,
p.cal.legend .ending {
padding-left: 20px;
background-image: url("../../../images/bullet_go.png");
background-repeat: no-repeat;
background-position: 0 center;
@extend %fa-icon;
&::before {
content: $fa-var-caret-right;
width: 10px;
text-align: right;
}
}
table.cal .ending a,
ul.cal .ending a,
p.cal.legend .ending {
padding-left: 20px;
background-image: url("../../../images/bullet_end.png");
&::before {
content: $fa-var-caret-left;
text-align: left;
}
}
table.cal .starting.ending a,
ul.cal .starting.ending a,
p.cal.legend .starting.ending {
padding-left: 20px;
background-image: url("../../../images/bullet_diamond.png");
&::before {
content: $fa-var-square;
transform: scale(.6) rotate(45deg);
text-align: center;
}
}
p.cal.legend {

View File

@@ -18,7 +18,7 @@
}
.debug {
// scss-lint:disable ImportantRule
// stylelint-disable declaration-no-important
background: #00f !important;
color: #fff !important;
}

View File

@@ -1,5 +1,20 @@
#main {
@if $flexbox-layout {
@if $css-grid-layout {
display: grid;
grid-template-rows: auto 1fr;
@if $sidebar-position == "left" {
grid-template-areas:
"sidebar content"
"footer footer";
grid-template-columns: auto 1fr;
} @else {
grid-template-areas:
"content sidebar"
"footer footer";
grid-template-columns: 1fr auto;
}
} @else if $flexbox-layout {
display: flex;
} @else {
@extend %clearfix;
@@ -13,8 +28,11 @@
#content {
padding: $padding-side;
overflow-x: auto; // needed for drag & drop of enumerations
@if $flexbox-layout {
@if $css-grid-layout {
grid-area: content;
} @else if $flexbox-layout {
$side-space: $sidebar-width + $padding-side * 2;
flex: 1 1 auto;
width: calc(100% - #{$side-space});
@@ -29,9 +47,29 @@
// --------------------------------------------------
#sidebar {
padding: $padding-side $sidebar-padding-horizontal;
#main & {
padding: $padding-side $sidebar-padding-horizontal;
}
@if $flexbox-layout {
#main.nosidebar & {
margin: 0;
padding: 0;
border: 0 none;
@if $css-grid-layout {
width: 0;
} @else if $flexbox-layout {
flex: 0 0 auto;
} @else {
width: 0;
float: none;
}
}
@if $css-grid-layout {
grid-area: sidebar;
width: $sidebar-width-computed;
} @else if $flexbox-layout {
flex: 0 0 $sidebar-width-computed;
@if $sidebar-position == "left" {
@@ -58,111 +96,297 @@
}
}
.nosidebar & {
margin: 0;
padding: 0;
border: 0 none;
@if $flexbox-layout {
flex: 0 0 auto;
} @else {
width: 0;
float: none;
}
}
h3 {
margin-top: $line-height-computed * 1.5;
}
> h3:first-child,
> form:first-child > h3 {
margin-top: 0;
margin-top: $line-height-computed * .25;
}
ul {
margin: 0 0 ($line-height-computed / 2);
padding: 0;
&:nth-child(n) {
margin: 0 0 ($line-height-computed * .5);
padding: 0;
@if $sidebar-position == "left" {
margin-right: -($sidebar-padding-horizontal);
} @else {
margin-left: -($sidebar-padding-horizontal);
@if $sidebar-position == "left" {
margin-right: -($sidebar-padding-horizontal);
}
}
&:not(.watchers) {
li {
position: relative;
margin: 0;
padding: 0;
list-style-type: none;
> a:not(.icon-only) {
display: block;
padding: $sidebar-padding-vertical $sidebar-padding-horizontal;
border: 1px solid transparent;
@if $sidebar-position == "left" {
border-left-width: 3px;
border-radius: $border-radius-large 0 0 $border-radius-large;
} @else {
margin-left: -($sidebar-padding-horizontal);
border-right-width: 3px;
border-radius: 0 $border-radius-large $border-radius-large 0;
}
&:hover {
background-color: $sidebar-link-hover-bg;
color: $sidebar-link-hover-text;
text-decoration: none;
}
&.selected {
border-color: $sidebar-link-active-border;
background-color: $sidebar-link-active-bg;
color: $sidebar-link-active-text;
@if $sidebar-position == "left" {
margin-right: -1px;
border-right-color: $body-bg;
border-left-color: $sidebar-link-active-side;
box-shadow: -3px 1px 2px rgba(0, 0, 0, .1);
} @else {
margin-left: -($sidebar-padding-horizontal + 1px);
border-right-color: $sidebar-link-active-side;
border-left-color: $body-bg;
box-shadow: 3px 1px 2px rgba(0, 0, 0, .1);
}
}
}
}
}
&.queries {
> li {
position: relative;
> a.query {
padding-right: $sidebar-padding-horizontal * 1.5;
}
> a.icon-only {
position: absolute;
top: $sidebar-padding-vertical;
right: $sidebar-padding-horizontal * .5;
line-height: $line-height-computed;
&::before {
line-height: inherit;
}
}
}
}
&.pages-hierarchy {
.pages-hierarchy {
margin-left: $sidebar-padding-horizontal + 3px;
border-left: 2px solid $gray-400;
@if $sidebar-position == "right" {
margin-left: 3px;
} @else {
margin-right: 0;
}
li {
> a:not(.icon-only) {
padding-right: $sidebar-padding-horizontal * .5;
padding-left: $sidebar-padding-horizontal * .5;
@if $sidebar-position == "right" {
margin-left: 0;
}
}
.pages-hierarchy {
margin-left: $sidebar-padding-horizontal * .5 + 3px;
}
}
}
}
}
li {
// Special treatment for anchor tags directly under sidebar tag
> a {
margin: $sidebar-padding-vertical $sidebar-padding-horizontal;
@if $sidebar-position == "left" {
margin-left: $sidebar-padding-horizontal + 3px;
} @else {
margin-right: $sidebar-padding-horizontal + 3px;
margin-left: 0;
}
}
// For plugin https://github.com/ledsun/redmine_wiki_page_tree
div.page-tree {
margin: 0;
padding: 0;
list-style-type: none;
> a {
display: block;
padding: $sidebar-padding-vertical $sidebar-padding-horizontal;
border: 1px solid transparent;
.page-tree__title {
margin-left: 0;
}
@if $sidebar-position == "left" {
border-left-width: 3px;
border-radius: $border-radius-large 0 0 $border-radius-large;
} @else {
border-right-width: 3px;
border-radius: 0 $border-radius-large $border-radius-large 0;
.page-tree__list {
.page-tree__list {
margin-left: $sidebar-padding-horizontal + 3px;
border-left: 2px solid $gray-400;
@if $sidebar-position == "right" {
margin-left: 3px;
} @else {
margin-right: 0;
}
.page-tree__list {
margin-left: $sidebar-padding-horizontal * .5 + 3px;
}
summary {
padding-left: $sidebar-padding-horizontal + 8px;
@if $sidebar-position == "right" {
margin-left: 0;
}
&::before {
left: 6px;
}
}
}
&:hover {
background-color: $sidebar-link-hover-bg;
text-decoration: none;
}
li {
> a:not(.icon-only) {
padding-right: $sidebar-padding-horizontal * .5;
padding-left: $sidebar-padding-horizontal * .5;
&.selected {
border-color: $sidebar-link-active-border;
background-color: $sidebar-link-active-bg;
color: $sidebar-link-active-text;
@if $sidebar-position == "right" {
margin-left: 0;
}
&:hover {
text-decoration: underline;
}
}
}
}
details {
summary {
display: block;
position: relative;
padding: 0 $sidebar-padding-horizontal;
padding-left: $sidebar-padding-horizontal * 1.5 + 8px;
@if $sidebar-position == "left" {
margin-right: -1px;
border-right-color: $body-bg;
border-left-color: $sidebar-link-active-side;
box-shadow: -3px 1px 2px rgba(0, 0, 0, .1);
border-radius: $border-radius-large 0 0 $border-radius-large;
} @else {
margin-left: -1px;
border-right-color: $sidebar-link-active-side;
border-left-color: $body-bg;
box-shadow: 3px 1px 2px rgba(0, 0, 0, .1);
margin-left: -($sidebar-padding-horizontal);
border-radius: 0 $border-radius-large $border-radius-large 0;
}
&::-webkit-details-marker {
display: none;
}
&::before {
content: "";
position: absolute;
top: ($sidebar-padding-vertical + 1px) + ($line-height-computed - 16px) * .5;
left: $sidebar-padding-horizontal * .5 + 6px;
width: 16px;
height: 16px;
background-image: inline-svg("chevron-right.svg", (path: (fill: $btn-default-icon-color)));
background-repeat: no-repeat;
}
&:hover {
background-color: $sidebar-link-hover-bg;
}
a {
display: inline-block;
padding-top: ($sidebar-padding-vertical + 1px);
padding-bottom: ($sidebar-padding-vertical + 1px);
&:hover {
color: $sidebar-link-hover-text;
text-decoration: underline;
}
}
}
&[open] > summary::before {
transform: rotate(90deg);
}
}
}
}
#footer {
margin: 0 $padding-side $line-height-computed;
padding-top: $line-height-computed;
border-top: 1px solid $gray-lighter;
color: $gray-light;
margin: 0 $padding-side;
padding: $line-height-computed 0;
border-top: 1px solid $gray-400;
color: $gray-600;
font-size: $font-size-small;
@if $css-grid-layout {
grid-area: footer;
}
}
@if $fixed-layout {
@media screen and (min-width: $screen-sm-min) {
body {
background: $gray-100;
}
#top-menu,
#header,
#main-menu ul,
#main {
#main,
#footer {
width: $width-sm;
margin-right: auto;
margin-left: auto;
}
#main {
overflow: hidden;
background: $body-bg;
}
#footer {
background: $body-bg;
&::before {
content: " ";
display: inline-block;
width: 20px;
}
}
}
@media screen and (min-width: $screen-md-min) {
#top-menu,
#header,
#main-menu ul,
#main {
#main,
#footer {
width: $width-md;
}
}
@media screen and (min-width: $screen-lg-min) {
#top-menu,
#header,
#main-menu ul,
#main {
#main,
#footer {
width: $width-lg;
}
}

View File

@@ -0,0 +1,61 @@
#wrapper {
.context-menu-selection {
&,
> td {
background-color: $brand-primary !important; // stylelint-disable-line declaration-no-important
color: $brand-text !important; // stylelint-disable-line declaration-no-important
}
}
#context-menu {
> ul,
> ul > li > ul {
@include nice-shadow(2);
border: 0 none !important; // stylelint-disable-line declaration-no-important
}
ul {
padding: 3px;
}
li {
padding: 0;
border: 0 none;
border-radius: $border-radius-small;
background: transparent;
&:hover {
background-color: $pagination-hover-bg;
}
}
a:not(.easy-mindmup__icon) {
@extend %fa-icon;
padding: 3px 10px 3px 20px;
border-radius: $border-radius-small;
&::before {
margin-top: 2px;
margin-left: -16px;
float: left;
}
&:hover {
border-color: $pagination-hover-border;
background-color: $pagination-hover-bg;
}
&.disabled {
color: rgba($pagination-color, .5);
}
&.icon-checked {
background: transparent;
}
&.submenu {
background-image: inline-svg("chevron-right.svg", (path: (fill: $btn-default-icon-color)));
}
}
}
}

View File

@@ -0,0 +1,149 @@
.drdn {
position: relative;
&.expanded {
> .drdn-content {
display: block;
}
}
&-trigger {
display: inline-block;
position: relative;
box-sizing: border-box;
cursor: pointer;
user-select: none;
}
&-content {
@include nice-shadow(2);
display: none;
position: absolute;
z-index: 1002;
top: $input-height-base + $btn-padding-vertical;
right: 0;
min-width: 150px;
overflow: hidden;
border-radius: $border-radius-base;
background: $body-bg;
}
&-items {
max-height: 400px;
overflow: auto;
color: $gray-600;
&:empty {
border: 0;
}
&.selection {
> a,
> span {
@extend %fa-icon;
&::before {
content: " ";
display: inline-block;
width: 1em;
font-weight: $font-weight-bold;
}
}
> .selected::before {
content: $fa-var-check;
}
}
> * {
display: block;
margin: 1px;
padding: ($btn-padding-vertical - 1px) ($btn-padding-horizontal-small - 1px);
border-radius: $border-radius-base - 1px;
&.icon {
padding-left: $icon-width + $btn-padding-horizontal-small;
&::before {
width: $icon-width;
margin-top: 3px;
float: left;
text-align: center;
}
}
}
}
}
.contextual {
.drdn-items {
padding: 3px;
a,
span {
padding-top: $pagination-padding-vertical;
padding-bottom: $pagination-padding-vertical;
border: 1px solid transparent;
border-radius: $border-radius-small;
color: $pagination-color;
&:hover,
&:focus {
border-color: $pagination-hover-border;
background-color: $pagination-hover-bg;
color: $pagination-hover-color;
text-decoration: none;
&.icon-del {
color: map-get(map-get($icon-color-map, danger), normal);
}
}
}
}
&:not(.journal-actions) > .drdn {
&.expanded {
> .drdn-trigger {
border-color: $pagination-active-border;
background-color: $pagination-active-bg;
color: $pagination-active-color;
}
}
.drdn-trigger {
padding: $btn-padding-vertical $btn-padding-horizontal-small;
border: 1px solid $pagination-border;
border-radius: $border-radius-base;
background-color: $pagination-bg;
box-shadow: none;
color: $pagination-color;
text-align: center;
> .icon-only {
margin: 0 -4px;
}
&:hover,
&:focus {
border-color: $pagination-hover-border;
background-color: $pagination-hover-bg;
color: $pagination-hover-color;
}
}
}
}
.journal-actions {
.drdn-trigger {
color: map-get(map-get($icon-color-map, default), normal);
}
.drdn-trigger:hover,
.drdn.expanded .drdn-trigger {
color: map-get(map-get($icon-color-map, default), hover);
}
.drdn-content {
top: $input-height-base;
}
}

View File

@@ -7,27 +7,29 @@
//
a.collapsible,
a.collapsible.icon,
.collapsible > legend {
color: $link-color;
cursor: pointer;
user-select: none;
&:hover {
&:hover,
&:focus {
color: $link-hover-color;
text-decoration: none;
}
&::before {
display: inline-block;
@include fa-icon;
content: $fa-var-chevron-down;
position: relative;
top: -1px;
width: 0;
height: 0;
top: -.1em;
width: 1em;
height: 1em;
margin-right: 3px;
transform: rotate(0);
border-top: 6px solid;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
content: "";
color: $gray-600;
font-size: 12px;
vertical-align: middle;
@if $collapsible-animation-time > 0 {
@@ -37,6 +39,7 @@ a.collapsible,
}
a.collapsible.collapsed,
a.collapsible.icon-collapsed,
.collapsible.collapsed > legend {
&::before {
transform: rotate(-90deg);
@@ -46,25 +49,26 @@ a.collapsible.collapsed,
@if $collapsible-animation-time > 0 {
fieldset.collapsible {
min-height: $line-height-computed;
max-height: 2500px; // should be enough with all the possible filters
max-height: $collapsible-max-height;
overflow: auto;
transition: max-height $collapsible-animation-time ease-out;
overflow: hidden;
> div {
display: block !important; // scss-lint:disable ImportantRule
display: block !important; // stylelint-disable-line declaration-no-important
visibility: visible;
transition: visibility 0s 0s, opacity $collapsible-animation-time;
opacity: 1;
visibility: visible;
}
&.collapsed {
max-height: 0;
overflow: hidden;
transition: max-height $collapsible-animation-time;
> div {
visibility: hidden;
transition: visibility 0s $collapsible-animation-time, opacity $collapsible-animation-time;
opacity: 0;
visibility: hidden;
}
}
}
@@ -83,9 +87,7 @@ a.collapsible.collapsed,
//
.contextual {
padding-left: $padding-base-vertical;
float: right;
white-space: nowrap;
cursor: default;
input,
@@ -94,33 +96,49 @@ a.collapsible.collapsed,
}
}
.contextual,
.buttons {
> .icon:not(:first-child) {
margin-left: $padding-small-vertical;
}
}
//== Accessibility specific styles
//
.hidden-for-sighted {
position: absolute;
top: auto;
left: -10000px;
width: 1px;
height: 1px;
overflow: hidden;
// stylelint-disable declaration-no-important
position: absolute !important;
top: auto !important;
left: -10000px !important;
width: 1px !important;
height: 1px !important;
overflow: hidden !important;
// stylelint-enable declaration-no-important
}
img {
image-orientation: from-image;
}
.filecontent-container {
position: relative;
min-height: 200px;
margin-bottom: $line-height-computed;
> .filecontent {
position: absolute;
max-width: 100%;
max-height: 100%;
&.wiki {
position: static;
padding-bottom: $line-height-computed;
}
}
}
//== Responsive autoscroll
//
.autoscroll {
overflow-x: auto;
position: relative;
margin-bottom: $line-height-computed;
overflow-x: auto;
}
@@ -144,7 +162,7 @@ a.collapsible.collapsed,
}
&:last-child,
>:last-child {
> :last-child {
margin-bottom: 0;
}
@@ -163,35 +181,25 @@ a.collapsible.collapsed,
.splitcontentleft,
.splitcontentright {
width: 50%;
box-sizing: border-box;
width: 50%;
> .wiki {
margin-bottom: $line-height-computed;
}
}
.splitcontentleft {
padding-right: ($padding-side / 2);
padding-right: ($padding-side * .5);
float: left;
}
.splitcontentright {
padding-left: ($padding-side / 2);
padding-left: ($padding-side * .5);
float: right;
}
//== Watchers selection list
//
#users_for_watcher {
height: 200px;
overflow: auto;
label {
@include checkbox;
display: block;
}
}
//== Watchers list
//
@@ -213,38 +221,61 @@ a.collapsible.collapsed,
padding-left: $sidebar-padding-horizontal;
}
> a {
> a:not(.icon-only) {
display: inline;
padding: 0;
background: transparent;
}
> .icon-only {
&::before {
line-height: inherit;
}
}
> .delete {
float: right;
opacity: .5;
vertical-align: middle;
opacity: $icon-opacity;
&:hover {
opacity: 1;
opacity: $icon-hover-opacity;
}
}
img.gravatar {
position: relative;
top: 1px;
margin-right: .5em;
vertical-align: top;
}
}
}
}
//== Users selection list
//
#principals {
label {
@include check;
display: block;
}
.gravatar {
margin-right: $padding-small-vertical;
}
}
.roles-selection {
label {
@include check-inline;
}
}
//== Subtitle paragraph (can be seen on activity list)
//
p.subtitle {
margin-top: ($line-height-computed / -2);
margin-top: ($line-height-computed * -.5);
margin-bottom: $line-height-computed;
font-style: italic;
}
@@ -258,11 +289,14 @@ p.subtitle {
}
.block-receiver {
min-height: 20px;
margin: $padding-side / -2;
margin-bottom: $line-height-computed;
padding: $padding-side / 2;
outline: 2px dashed $gray-light;
box-sizing: border-box;
flex-basis: 100%;
.dragging & {
min-height: 20px;
margin-bottom: $line-height-computed;
outline: 2px dashed $gray-600;
}
}
.mypage-box {
@@ -273,18 +307,18 @@ p.subtitle {
}
&.ui-sortable-handle {
outline: 1px solid $gray-lighter;
overflow: hidden;
outline: 1px solid $gray-400;
&:hover {
outline: 1px solid $gray-light;
outline: 1px solid $gray-600;
}
}
&.ui-sortable-placeholder {
visibility: visible !important; // stylelint-disable-line declaration-no-important
outline: 1px dashed $highlight-border;
background: $highlight-bg;
visibility: visible !important; // scss-lint:disable ImportantRule
}
&.ui-sortable-helper {
@@ -302,16 +336,41 @@ a.close-icon {
width: 12px;
height: 12px;
margin-top: 5px;
overflow: hidden;
background-image: url("../../../images/close.png");
background-repeat: no-repeat;
cursor: pointer;
overflow: hidden;
&:hover {
background-image: url("../../../images/close_hl.png");
}
}
// For Redmine 3.4+
#my-page {
display: flex;
flex-wrap: wrap;
.mypage-box {
> .contextual {
transition: opacity $transition-time;
opacity: 0;
}
&:hover > .contextual {
opacity: 1;
}
}
#list-left {
flex-basis: 50%;
}
#list-right {
flex-basis: 50%;
}
}
//== Resetting font for SCM (repository files)
//
@@ -339,7 +398,7 @@ a.close-icon {
th.line-num {
border-color: darken($body-bg, 10%);
background-color: darken($body-bg, 5%);
color: $gray;
color: $gray-700;
}
th.line-num,
@@ -402,11 +461,42 @@ ul.projects {
li {
list-style-type: none;
}
.archived {
color: $gray-600;
}
}
#projects-index ul.projects {
@if $use-project-tiles {
&.root {
display: flex;
flex-wrap: wrap;
margin-right: -($padding-side * .5);
margin-left: -($padding-side * .5);
> li {
display: block;
box-sizing: border-box;
flex: 0 1 auto;
width: 100%;
margin-right: $padding-side * .5;
margin-left: $padding-side * .5;
padding: $panel-body-padding;
border: 1px solid $panel-border;
border-radius: $border-radius-base;
background-color: $panel-bg;
color: $panel-color;
@media screen and (min-width: $screen-sm-min) { width: calc(50% - #{$padding-side}); }
@media screen and (min-width: $screen-md-min) { width: calc(33.333% - #{$padding-side}); }
@media screen and (min-width: $screen-lg-min) { width: calc(25% - #{$padding-side}); }
}
}
}
ul.projects {
border-left: 2px solid $gray-lighter;
border-left: 2px solid $gray-400;
}
li.root {
@@ -414,7 +504,7 @@ ul.projects {
}
li.child {
margin-top: $line-height-computed / 2;
margin-top: $line-height-computed * .5;
}
a.project {
@@ -422,7 +512,15 @@ ul.projects {
font-weight: $font-weight-bold;
&.child {
font-weight: normal;
font-weight: $font-weight-normal;
}
}
}
table.projects {
.name {
a + span.icon {
margin-left: 5px;
}
}
}
@@ -456,11 +554,11 @@ ul.projects {
tbody tr {
&.subtotal {
color: $gray;
color: $gray-700;
font-style: italic;
td.hours {
color: $gray-light;
color: $gray-600;
}
}
@@ -493,25 +591,44 @@ ul.projects {
//
div#roadmap {
article {
margin-bottom: $line-height-computed;
}
.related-issues {
margin-bottom: $line-height-computed;
td.checkbox {
display: none;
}
td.assigned_to {
width: 1px;
padding-right: 0;
white-space: nowrap;
}
}
table.progress {
td {
height: 16px;
height: $progress-height;
}
}
+ .percent {
position: relative;
top: 2px;
header {
display: block;
> h3 {
display: inline-block;
}
}
header > h3,
h3.version {
margin-bottom: 0;
padding-right: 0;
}
.wiki {
h1 {
&:first-child {
@@ -558,28 +675,44 @@ div#version-summary {
//== Ajax indicator
//
@keyframes spin {
to { transform: rotate(360deg); }
}
#ajax-indicator {
@include nice-shadow(3);
position: fixed;
z-index: 100;
top: 50%;
left: 50%;
box-sizing: border-box;
width: 200px;
margin: (($line-height-computed + $padding-large-vertical * 2 + 1px * 2) / -2) ((200px + $padding-large-horizontal * 2 + 1px * 2) / -2);
margin: (($padding-large-vertical * 2 + 1px * 2 + $line-height-computed) * -.5) (200px * -.5);
padding: $padding-large-vertical $padding-large-horizontal;
border: 1px solid $highlight-border;
border-radius: $border-radius-base;
opacity: .9;
background-color: $highlight-bg;
color: $highlight-text;
font-weight: $font-weight-bold;
text-align: center;
opacity: .9;
z-index: 100;
span {
padding-left: 26px;
background-image: url("../../../images/loading.gif");
background-repeat: no-repeat;
background-position: 0% 40%;
vertical-align: bottom;
line-height: $line-height-computed;
&::before {
content: "";
display: inline-block;
box-sizing: border-box;
width: $line-height-computed;
height: $line-height-computed;
margin-right: $line-height-computed * .5;
animation: spin 1s linear infinite;
border: 3px solid rgba($highlight-text, .3);
border-radius: 50%;
border-top-color: $highlight-text;
vertical-align: bottom;
}
}
}
@@ -589,7 +722,7 @@ div#version-summary {
tr.message {
&.locked {
color: $gray;
color: $gray-700;
}
&.sticky td.subject {
@@ -639,24 +772,23 @@ div.table-list.boards {
.controller-messages.action-show {
h2 {
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
.message {
border: 1px solid $gray-lighter;
border: 1px solid $bubble-border;
border-radius: $panel-border-radius;
background: $gray-lightest;
background: $bubble-bg;
> h4,
> p {
margin-bottom: 0;
padding: $bubble-padding-vertical $bubble-padding-horizontal;
border-bottom: 1px solid mix($gray-lighter, $gray-lightest, 50%);
color: $gray;
color: $gray-700;
font-size: $font-size-list;
a {
color: $gray-darker;
color: $gray-900;
&.user {
font-weight: $font-weight-bold;
@@ -665,26 +797,26 @@ div.table-list.boards {
}
.wiki {
padding: $bubble-padding-horizontal;
padding: $panel-body-padding;
border-top: 1px solid $bubble-border;
border-radius: 0 0 $panel-border-radius $panel-border-radius;
background: $body-bg;
}
.contextual {
position: relative;
margin-right: $bubble-padding-vertical;
z-index: 1;
@if $use-font-awesome {
margin-top: $padding-small-vertical;
} @else {
margin-top: $bubble-padding-vertical;
}
padding: ($bubble-padding-vertical - 1px) $bubble-padding-vertical 0 0;
a {
margin-left: ceil($bubble-padding-vertical / 2);
display: inline-block;
}
}
.attachments {
padding: $bubble-padding-horizontal;
border-top-color: $bubble-border;
}
}
.reply {
@@ -700,6 +832,7 @@ div.table-list.boards {
&::before,
&::after {
content: " ";
display: block;
position: absolute;
top: 9px;
@@ -709,7 +842,6 @@ div.table-list.boards {
height: 0;
border-style: solid solid outset;
border-color: transparent;
content: " ";
pointer-events: none;
}
@@ -717,12 +849,12 @@ div.table-list.boards {
margin-top: 1px;
margin-left: 2px;
border-width: 6px;
border-right-color: $panel-bg;
border-right-color: $bubble-bg;
}
&::before {
border-width: 7px;
border-right-color: $panel-border;
border-right-color: $bubble-border;
}
}
@@ -740,16 +872,103 @@ div.table-list.boards {
}
//== Documents
//
.controller-documents {
&.action-index {
h2 {
font-size: $font-size-h2;
}
h4 {
margin-bottom: 0;
font-size: $font-size-h4;
}
.wiki {
+ h3,
+ h4 {
margin-top: $line-height-computed;
padding-top: $line-height-computed;
border-top: 1px solid $panel-border;
}
}
}
&.action-show {
.wiki {
margin-bottom: $line-height-computed;
}
}
h3 {
font-size: $font-size-h3;
}
#content > h2,
#content > h4 {
+ p {
color: $gray-700;
em {
font-style: normal;
}
}
}
}
//== News
//
.news.box {
p > a:not(:last-child) {
display: inline-block;
margin-bottom: floor($line-height-computed * .25);
font-size: $font-size-h4;
}
.summary,
.author {
display: block;
margin-bottom: floor($line-height-computed * .25);
+ br {
display: none;
}
}
.author {
margin-bottom: $line-height-computed;
}
}
#edit-news + p {
em {
display: block;
margin-bottom: floor($line-height-computed * .25);
+ br {
display: none;
}
}
}
.news.box .summary,
#edit-news + p em {
padding: floor($line-height-computed * .25) $padding-base-horizontal;
border-left: 4px solid $blockquote-border-color;
}
.news-article {
margin-bottom: $line-height-computed;
padding-top: $line-height-computed;
border-top: 1px solid $panel-border;
header {
h3 {
margin-bottom: .3em;
line-height: 1.2;
margin-bottom: $line-height-computed * .5;
> a {
font-weight: $font-weight-bold;
@@ -758,8 +977,16 @@ div.table-list.boards {
}
}
.author .user {
font-weight: $font-weight-bold;
.author {
color: $gray-700;
.flyout-menu & {
color: inherit;
}
.user {
font-weight: $font-weight-bold;
}
}
@@ -769,7 +996,7 @@ div.table-list.boards {
#comments {
> h4 {
margin-top: $line-height-computed;
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
}
@@ -792,6 +1019,8 @@ div.table-list.boards {
border-radius: $panel-border-radius;
background: $body-bg;
color: $panel-color;
font-family: $font-family-monospace;
white-space: pre-wrap;
}
.diff_out {
@@ -810,6 +1039,16 @@ div.table-list.boards {
}
}
.text-diff {
.diff_out {
background: $diff-out-bg;
}
.diff_in {
background: $diff-in-bg;
}
}
//== Repository view
//
@@ -832,18 +1071,12 @@ div.table-list.boards {
li > a {
margin-left: .5em;
@if $use-font-awesome == false {
img {
vertical-align: middle;
}
}
}
}
ul.properties {
padding: 0;
color: $gray;
color: $gray-700;
font-size: $font-size-small;
li {
@@ -888,47 +1121,58 @@ tr.changeset {
font-size: 1em;
.change {
background-position: 5px center;
margin-left: 8px;
}
.change-A { color: $changeset-add-color; }
.change-M { color: $changeset-modified-color; }
.change-C { color: $changeset-copied-color; }
.change-R { color: $changeset-renamed-color; }
.change-D { color: $changeset-deleted-color; }
}
.changeset-changes {
.change {
padding-top: $table-condensed-cell-padding;
color: $gray-dark;
margin-top: $table-condensed-cell-padding;
color: $gray-800;
}
}
a {
@include link-variant($gray-dark);
#changes-legend > li.change,
.changeset-changes ul > li.change {
padding-left: 18px;
background: transparent;
background-repeat: no-repeat;
background-position: 0 center;
&.folder {
@extend %fa-icon;
&::before {
content: $fa-var-folder;
top: 0;
margin-right: 0;
margin-left: -18px;
font-size: 1em;
}
&.change-A::before,
&.change-M::before {
content: $fa-var-folder-open;
}
}
.change-A {
&::before { color: $changeset-add-color; }
a { @include link-variant($changeset-add-color); }
&.change-A {
background-image: inline-svg("diff-added.svg", (path: (fill: $changeset-added-color)));
}
.change-M {
&::before { color: $changeset-modified-color; }
a { @include link-variant($changeset-modified-color); }
&.change-M {
background-image: inline-svg("diff-modified.svg", (path: (fill: $changeset-modified-color)));
}
.change-C {
&::before { color: $changeset-copied-color; }
a { @include link-variant($changeset-copied-color); }
&.change-C {
background-image: inline-svg("diff-copied.svg", (path: (fill: $changeset-copied-color)));
}
.change-R {
&::before { color: $changeset-renamed-color; }
a { @include link-variant($changeset-renamed-color); }
&.change-R {
background-image: inline-svg("diff-renamed.svg", (path: (fill: $changeset-renamed-color)));
}
.change-D {
color: $changeset-deleted-color;
&.change-D {
background-image: inline-svg("diff-deleted.svg", (path: (fill: $changeset-deleted-color)));
}
}

View File

@@ -8,49 +8,41 @@
.nodata,
.warning,
.conflict {
@extend %fa-icon;
margin-bottom: $line-height-computed;
padding: $padding-large-vertical $padding-large-horizontal;
padding-left: $padding-large-horizontal + 8px + 16px;
border: 1px solid;
border-radius: $border-radius-large;
background-repeat: no-repeat;
background-position: $padding-large-horizontal 50%;
@if $use-font-awesome {
@extend %fa-icon;
&::before {
margin-left: -(8px + 16px);
float: left;
line-height: $line-height-computed;
}
} @else {
background-repeat: no-repeat;
background-position: $padding-large-horizontal 50%;
&::before {
margin-left: -(8px + 16px);
float: left;
line-height: $line-height-computed;
}
>:last-child {
> :last-child {
margin-bottom: 0;
}
}
@mixin flash($color, $background, $border, $link, $icon) {
color: $color;
background-color: $background;
border-color: $border;
background-color: $background;
color: $color;
@if $use-font-awesome {
@if $icon == "true" {
$icon: $fa-var-check;
} @elseif $icon == "warning" {
$icon: $fa-var-warning;
} @elseif $icon == "exclamation" {
$icon: $fa-var-exclamation-circle;
}
@if $icon == "true" {
$icon: $fa-var-check;
} @else if $icon == "warning" {
$icon: $fa-var-warning;
} @else if $icon == "exclamation" {
$icon: $fa-var-exclamation-circle;
}
&::before {
content: $icon;
}
} @else {
background-image: url(../../../images/#{$icon}.png);
&::before {
content: $icon;
}
a {
@@ -78,12 +70,16 @@
padding-left: $padding-large-horizontal;
text-align: center;
@if $use-font-awesome {
&.nodata-left {
&::before {
margin-left: 0;
float: none;
float: left;
}
}
&::before {
margin-left: 0;
float: none;
}
}
#errorExplanation {

View File

@@ -7,8 +7,49 @@ form {
padding: $table-condensed-cell-padding;
}
fieldset {
> button,
> input,
> select {
margin-right: 5px;
margin-bottom: $line-height-computed * .5;
}
}
label {
line-height: $input-height-base;
vertical-align: top;
> input[type="checkbox"],
> input[type="radio"] {
margin-top: $check-input-margin-btn-v;
}
}
span.field label,
span.field ~ label,
.box label {
line-height: $line-height-base;
> input[type="checkbox"],
> input[type="radio"] {
margin-top: $check-input-margin-vertical;
}
}
.add-filter label,
.filter label {
line-height: $input-height-base;
}
.contextual > & {
display: inline;
display: inline-block;
line-height: $input-height-base;
vertical-align: top;
label {
line-height: inherit;
}
}
}
@@ -16,10 +57,20 @@ button,
input,
select,
textarea {
box-sizing: border-box;
font-family: inherit;
font-size: $font-size-base;
line-height: $line-height-base;
box-sizing: border-box;
}
%form-field {
height: $input-height-base;
padding: $input-padding-vertical $input-padding-horizontal;
border: 1px solid $input-border;
border-radius: $input-border-radius;
background-color: $input-bg;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
color: $input-color;
}
select,
@@ -38,30 +89,27 @@ input[type="search"],
input[type="email"],
input[type="text"],
input[type="password"] {
@extend %form-field;
@include form-control-focus;
@include placeholder;
height: $input-height-base;
padding: $input-padding-vertical $input-padding-horizontal;
transition: border-color ease-in-out .1s, box-shadow ease-in-out .1s;
border: 1px solid $input-border;
border-radius: $input-border-radius;
background-color: $input-bg;
color: $input-color;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
transition:
border-color $transition-time ease-in-out,
box-shadow $transition-time ease-in-out;
vertical-align: top;
&[disabled],
&[readonly],
fieldset[disabled] & {
border-color: $input-border;
opacity: 1;
background-color: $input-bg-disabled;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
opacity: 1;
}
}
textarea {
resize: vertical;
height: auto;
resize: vertical;
&.text_cf {
width: 100%;
@@ -70,14 +118,15 @@ textarea {
}
input[type="search"] {
-webkit-appearance: none;
-webkit-appearance: none; // stylelint-disable-line property-no-vendor-prefix
}
input[type="radio"],
input[type="checkbox"] {
margin: 4px 5px 0 0;
margin: 4px 3px 0 5px;
margin-top: 1px \9; // IE8-9
line-height: normal;
vertical-align: top;
}
input[type="file"] {
@@ -111,6 +160,7 @@ select {
&[multiple],
&[size] {
height: auto;
min-height: $input-height-base;
}
&[size="1"] {
@@ -118,7 +168,7 @@ select {
}
option[disabled] {
color: $gray-lighter;
color: $gray-400;
}
&.expandable {
@@ -126,7 +176,7 @@ select {
}
&.bool_cf {
width: auto !important; // scss-lint:disable ImportantRule
width: auto !important; // stylelint-disable-line declaration-no-important
}
}
@@ -137,7 +187,7 @@ select {
// Mozilla Firefox
@-moz-document url-prefix() {
@-moz-document url-prefix("") {
select {
&[multiple] {
padding: 0;
@@ -146,7 +196,7 @@ select {
option,
optgroup::before {
padding: $input-padding-vertical $input-padding-horizontal;
border-bottom: 1px dotted $gray-lighter;
border-bottom: 1px dotted $gray-400;
}
optgroup > option {
@@ -166,7 +216,7 @@ select {
// For some reason nested selectors will not work
select[multiple] option {
padding: $input-padding-vertical $input-padding-horizontal;
border-bottom: 1px dotted $gray-lighter;
border-bottom: 1px dotted $gray-400;
}
}
@@ -178,7 +228,7 @@ select:-moz-focusring {
fieldset {
min-width: 0;
margin: 0;
padding: ($line-height-computed / 2) 0;
padding: ($line-height-computed * .5) 0;
border: 0 none;
border-top: 1px solid $legend-border-color;
@@ -200,9 +250,9 @@ span.required {
position: relative;
top: 3px;
margin-left: -.2em;
color: #d00;
color: $red;
font-size: 1.5em;
font-weight: normal;
font-weight: $font-weight-normal;
line-height: 0;
}
@@ -213,9 +263,10 @@ span.required {
em.info {
display: block;
padding: 2px 0;
color: $gray;
color: $gray-700;
font-size: $font-size-small;
font-style: normal;
line-height: $line-height-base;
}
@@ -246,13 +297,25 @@ em.info {
p {
@extend %clearfix;
margin: 0 0 ($line-height-computed / 2);
margin: 0 0 ($line-height-computed * .5);
padding-left: $label-width + $label-space;
clear: left;
line-height: $input-height-base;
.jstEditor {
margin-bottom: 0;
}
.bool_cf:not(.check_box_group) {
display: block;
padding-top: $input-padding-vertical + 1px;
line-height: $line-height-base;
> input[type="checkbox"],
> input[type="radio"] {
margin-left: 0;
}
}
}
input,
@@ -266,23 +329,17 @@ em.info {
resize: vertical;
}
input[type="radio"],
input[type="checkbox"] {
position: relative;
top: 3px;
vertical-align: baseline;
}
span[title] {
border-bottom: 1px dotted #aaa;
border-bottom: 1px dotted $gray-600;
}
label {
width: $label-width;
margin-top: $input-padding-vertical + 1px;
margin-bottom: $input-padding-vertical + 1px;
margin-left: -($label-width + $label-space);
padding-top: $input-padding-vertical + 1px;
float: left;
line-height: $line-height-base;
text-align: right;
user-select: none;
@@ -297,10 +354,16 @@ em.info {
display: block;
width: auto;
margin-left: 0;
padding-left: 16px;
padding-left: $check-input-gutter;
float: none;
text-align: left;
cursor: pointer;
> input[type="checkbox"],
> input[type="radio"] {
margin-left: -$check-input-gutter;
float: left;
}
}
&.inline {
@@ -311,32 +374,47 @@ em.info {
padding-left: 34px;
}
> input[type="radio"],
> input[type="checkbox"] {
top: 1px;
> input[type="checkbox"],
> input[type="radio"] {
margin-top: $check-input-margin-vertical;
margin-left: 0;
}
~ input[type="checkbox"],
~ input[type="radio"] {
margin-top: $check-input-margin-btn-v;
margin-left: 0;
}
}
}
label.inline {
display: inline-block;
margin-right: $padding-base-horizontal;
padding-left: 16px;
margin-right: $check-input-margin-horizontal;
padding-left: $check-input-gutter;
float: none;
text-align: left;
cursor: pointer;
&:last-child {
margin-right: 0;
}
> input {
margin-left: -$check-input-gutter;
float: left;
}
input + & {
padding-left: 0;
}
}
label.inline,
label.block {
display: block;
width: auto;
> input {
margin-top: .2em;
margin-left: -16px;
float: left;
margin-right: 3px;
margin-left: 3px;
}
}
@@ -344,9 +422,8 @@ label.block {
//== Hack: align description edit icon with label
//
label[for=issue_description] + a {
label[for="issue_description"] + a {
display: inline-block;
margin-top: $input-padding-vertical + 1px;
img {
vertical-align: middle;
@@ -357,10 +434,8 @@ label[for=issue_description] + a {
//== Hack: better looking filter checkbox in sidebar in projects list
//
label[for=closed] {
@include checkbox;
display: block;
margin-bottom: $line-height-computed / 2;
label[for="closed"] {
margin-bottom: $line-height-computed * .5;
}
@@ -390,7 +465,7 @@ label[for=closed] {
$input-height-large: (ceil($font-size-large-px * $line-height-large) + ($input-padding-large-vertical * 2) + 2);
label[for="issue_subject"] {
margin-top: floor($input-padding-large-vertical * $line-height-large + 1px);
padding-top: $input-padding-large-vertical;
}
#issue_subject {
@@ -406,7 +481,7 @@ label[for=closed] {
//
.jstEditor {
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
//== User form
@@ -425,16 +500,18 @@ label[for=closed] {
//== Attachments
//
#attachments_fields {
#attachments_fields,
#existing-attachments,
.attachments_fields {
> span {
display: block;
margin-bottom: $line-height-computed / 4;
margin-bottom: $line-height-computed * .25;
}
input {
width: 21.5em;
margin-right: .5em;
margin-bottom: $line-height-computed / 4;
margin-bottom: $line-height-computed * .25;
&.filename {
padding-left: $input-padding-horizontal + 16px;
@@ -522,82 +599,67 @@ label[for=closed] {
#issue_is_private_wrap,
#all_attributes > p[style] {
margin-right: 0 !important; // scss-lint:disable ImportantRule
margin-right: 0 !important; // stylelint-disable-line declaration-no-important
margin-bottom: 0;
padding-left: 0;
float: right;
input {
top: 2px;
margin-top: $check-input-margin-btn-v;
margin-right: 3px;
}
label {
display: inline-block !important; // stylelint-disable-line declaration-no-important
margin-right: 0;
padding-left: 0;
}
}
#watchers_form {
overflow: hidden;
#users_for_watcher,
#watchers_inputs {
display: block;
max-height: $check-list-max-height;
margin-bottom: $line-height-computed * .5;
overflow: auto;
.search_for_watchers {
display: block;
label {
@include check-list;
}
#watchers_inputs {
display: block;
max-width: 64em;
margin-top: $input-padding-vertical + 1px;
margin-bottom: $line-height-computed / 2;
columns: 18em 3;
overflow: auto;
}
label.floating {
@include checkbox;
display: block;
width: auto;
margin: 0;
float: none;
input[type="checkbox"] {
top: -1px;
}
.gravatar {
margin-right: $padding-small-vertical;
}
}
#watchers_inputs {
max-width: 64em;
columns: 18em 3;
}
//== Custom logic (boolean) field displayed as radio buttons
//== List of custom field values
//
.check_box_group {
display: block;
width: 90%;
max-height: $check-list-max-height;
overflow-y: auto;
label {
display: block;
width: auto;
margin-bottom: 0;
margin-left: 0;
float: none;
font-weight: normal;
text-align: left;
@include check-list;
}
&.bool_cf {
label {
@extend %clearfix;
display: inline-block;
margin-right: 10px;
padding-left: 20px;
user-select: none;
@media screen and (min-width: $redmine-responsive-min) {
// Boolean field displayed as inline radio buttons
&.bool_cf {
overflow: initial;
input[type="checkbox"],
input[type="radio"] {
top: 0;
margin-left: -20px;
float: left;
label {
display: inline-block;
margin-right: $check-input-margin-horizontal;
}
}
}
@@ -614,14 +676,14 @@ fieldset#filters {
}
}
.add-filter {
text-align: right;
}
td {
&.field {
min-width: 180px;
padding-right: $table-cell-padding * 2;
white-space: nowrap;
@media screen and (min-width: $screen-sm-min) {
min-width: 180px;
}
}
&.operator {
@@ -634,6 +696,7 @@ fieldset#filters {
}
&.values {
min-width: 130px;
white-space: nowrap;
select {
@@ -643,12 +706,22 @@ fieldset#filters {
&.add-filter {
padding-top: $table-condensed-cell-padding * 2;
vertical-align: top;
text-align: right;
}
input[type="checkbox"],
input[type="radio"] {
margin-top: $check-input-margin-btn-v;
}
}
div.add-filter {
padding-top: $table-condensed-cell-padding;
@media screen and (min-width: $redmine-responsive-min) {
float: right;
text-align: right;
}
}
}
@@ -657,6 +730,38 @@ fieldset#filters {
}
#activity_scope_form {
li {
> input[type="checkbox"],
> input[type="radio"] {
margin-top: $check-input-margin-btn-v;
}
}
}
#query_form {
p {
input,
select,
label,
.icon,
.icon-only,
> span > a {
line-height: inherit;
vertical-align: middle;
}
}
}
.query_sort_criteria_count {
display: inline-block;
min-width: 1em;
margin-bottom: $line-height-computed * .25;
line-height: $input-height-base;
}
//== Reset label style for trackers selector in custom field editor
//
@@ -665,5 +770,6 @@ label.no-css {
margin-left: 0;
float: none;
font-weight: inherit;
line-height: inherit;
text-align: left;
}

View File

@@ -2,25 +2,118 @@
// Gantt chart
// --------------------------------------------------
div.gantt_content {
overflow: auto;
}
.controller-gantts form + table,
table.gantt-table {
width: 100%;
border-collapse: collapse;
td {
padding: 0;
vertical-align: top;
}
}
.gantt_hdr {
position: absolute;
top: 0;
height: 16px;
border: 1px solid $gray-lighter;
border-left-width: 0;
text-align: center;
overflow: hidden;
border: 1px solid $gray-500;
text-align: center;
&[style*="background"] {
background: $gray-200 !important; // stylelint-disable-line declaration-no-important
}
&.nwday {
background-color: $gray-lightest;
background-color: $gray-200;
color: $gray-950;
}
#gantt_area & {
border-right-width: 1px;
border-left-width: 0;
}
.gantt_subjects_container:not(.draw_selected_columns) &,
.last_gantt_selected_column & {
z-index: 1;
}
}
.gantt_subjects_container .gantt_subjects {
z-index: 2;
}
.last_gantt_selected_column .gantt_selected_column_container,
.gantt_subjects_container .gantt_subjects * {
z-index: 10;
}
.gantt_subjects_column {
.gantt_hdr {
border-left: 1px solid $gray-500 !important; // stylelint-disable-line declaration-no-important
}
+ td {
padding: 0;
}
}
.gantt_subjects {
font-size: $font-size-small;
.issue-subject {
&:hover {
background-color: $table-bg-hover;
}
img.icon-gravatar {
float: none;
}
}
}
.gantt_hdr_selected_column_name {
@include text-overflow;
position: absolute;
top: 50%;
width: 100%;
transform: translateY(-50%);
font-size: $font-size-small;
}
td.gantt_selected_column {
width: 60px;
}
td.gantt_selected_column .gantt_hdr,
.gantt_selected_column_container {
width: 60px - 1px;
border-left-width: 0;
}
.gantt_subjects {
position: relative;
z-index: 1;
font-size: $font-size-small;
}
.gantt_selected_column_content {
div {
box-sizing: border-box;
padding-right: $table-condensed-cell-padding;
padding-left: $table-condensed-cell-padding;
}
}
.gantt_subjects,
.gantt_selected_column_content {
div {
@include text-overflow;
width: 100%;
height: 16px;
line-height: 16px;
}
@@ -118,12 +211,20 @@
.version-behind-schedule,
.issue-behind-schedule {
color: $brand-warning;
.context-menu-selection & {
color: $brand-text;
}
}
.version-overdue,
.issue-overdue,
.project-overdue {
color: $brand-danger;
.context-menu-selection & {
color: $brand-text;
}
}
@@ -137,20 +238,20 @@
&:hover {
z-index: 25;
.tip {
span.tip {
display: block;
}
}
.tip {
span.tip {
@include nice-shadow(3);
display: none;
position: absolute;
top: 9px;
left: 24px;
top: 12px;
width: 270px;
padding: $padding-base-vertical;
border: $tooltip-border-width solid $tooltip-border;
border-radius: $border-radius-small;
background-color: $tooltip-bg;
color: $tooltip-text;
font-size: $font-size-small;
@@ -158,9 +259,9 @@
}
@if $sidebar-position == "left" {
tr > td:last-child & {
.tip {
right: 2px;
.list & {
span.tip {
right: 0;
left: auto;
}
}

View File

@@ -3,16 +3,16 @@
// --------------------------------------------------
img.gravatar {
position: relative;
top: -.15em;
overflow: hidden;
border-radius: $border-radius-large;
line-height: 1;
overflow: hidden;
vertical-align: middle;
h2 &,
h3 &,
h4 & {
position: relative;
top: -1px;
margin-right: 5px;
}
}
@@ -22,10 +22,7 @@ img.gravatar {
//
.username img.gravatar {
position: relative;
top: 1px;
margin-right: .5em;
vertical-align: top;
}
//== Gravatar

File diff suppressed because it is too large Load Diff

View File

@@ -4,41 +4,5 @@
// ACI = AutoComplete Indicator
%image-aci {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAKBAMAAAAnY0GXAAAAD1BMVEUAAACzs7Ozs7Ozs7Ozs7NJvZFvAAAABHRSTlMA5kpJG2qUMwAAABtJREFUCNdjIBMYCkMRDIg4QhBuAUUhKCIPAAAlaQNk5qF21gAAAABJRU5ErkJggg==);
}
%image-arrow-up {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMAgFIFe2wwFmA2CKQAAAArSURBVAjXYyASGBlAGYoKEJpNUAzCKBEUKQDRzIGCgsEgBpOgoKAQA5kAAOOzAuqv1pGxAAAAAElFTkSuQmCC);
}
%image-arrow-right {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAG1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUUeIgAAAACXRSTlMAgF1mUUUMBwa6cf6pAAAAIklEQVQI12PADwJgDBEYQ1ADxhBOgDIEFdBF1GG6EOYQCQC/wwKE7b2bNAAAAABJRU5ErkJggg==);
}
%image-arrow-down {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMAgFIFbDAWVn1ccuIAAAAsSURBVAjXYyANMAkKCgqBGMyOgoLOYKFEQcEEMINVUBSqSlEByjA3YCARAADFOwKnW3vw7AAAAABJRU5ErkJggg==);
}
%image-arrow-left {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMAgF1mUUUMBtml7EIAAAAjSURBVAjXYyAAWGEMRyhdJAih2QyhDCZBhAhcDVwXwhziAACuywJHmKAVPgAAAABJRU5ErkJggg==);
}
%image-arrow-up-white {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAYUlEQVR4Xu2SMQqAMAxFVUxOID2FQ+9R3cRjesX4A5lCoaUFB2nhkeQPLxQyi8jU8xbwYwGBC1CrIIFda4sgKq6vFgS/1eZQI2BwZ/5NlnNJcIAtt8ny04ermx/l4zsYgheccgigTIfmMAAAAABJRU5ErkJggg==);
}
%image-arrow-down-white {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAG1BMVEUAAAD////////////////////////////////rTT7CAAAACXRSTlMAgFIFbBZWMTBl3YBFAAAALElEQVQI12MgDTAJCgoKgRjMjoKCzmChQEHBADCDQ1AcqkpRAcowM2AgEQAAvM4CiwrixCQAAAAASUVORK5CYII=);
}
%image-calendar {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOBAMAAADtZjDiAAAAIVBMVEUAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUMftYpAAAACnRSTlMArIDn/dahwzIKIC4f+wAAADxJREFUCNdjYEhJACEGBk8HEGIQXrDYeMFiAYZVK1YB0QKGVSAApBcwMQgwMSDohaKChqKCxItXgc0pAADUBx5bh1ZBCgAAAABJRU5ErkJggg==);
}
%image-toggle-minus {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMAgJsrThgAAAAQSURBVAjXY8AK+D+AEDYAAC8fAf+FxiPoAAAAAElFTkSuQmCC);
}
%image-toggle-plus {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMAgJsrThgAAAAVSURBVAjXY0AGjA1QxP8BiBBcJAAAdjIFBZTfDZQAAAAASUVORK5CYII=);
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAKBAMAAAAnY0GXAAAAD1BMVEUAAACzs7Ozs7Ozs7Ozs7NJvZFvAAAABHRSTlMA5kpJG2qUMwAAABtJREFUCNdjIBMYCkMRDIg4QhBuAUUhKCIPAAAlaQNk5qF21gAAAABJRU5ErkJggg==");
}

View File

@@ -3,21 +3,51 @@
// --------------------------------------------------
.issue {
@if not $clean-issues {
&.details {
padding: $issue-padding;
border: 1px solid $issue-border;
border-radius: $border-radius-base;
background-color: $issue-bg;
color: $issue-text;
}
}
&.details {
margin-bottom: $line-height-computed;
padding: $issue-padding;
border: 1px solid $issue-border;
border-radius: $border-radius-base;
background-color: $issue-bg;
color: $issue-text;
word-wrap: break-word;
@if $use-gravatars {
// For Redmine 3.4+
.gravatar-with-child {
position: relative;
> img.gravatar {
top: 0;
width: $issue-gravatar-size;
height: $issue-gravatar-size;
margin-right: 10px;
margin-bottom: $line-height-computed * .5;
float: left;
&:nth-child(2) {
position: absolute;
top: $issue-gravatar-size * .6;
left: $issue-gravatar-size * .6;
width: $issue-gravatar-size * .5;
height: $issue-gravatar-size * .5;
border: 2px solid rgba(255, 255, 255, .9);
border-radius: 20%;
}
}
}
> img.gravatar {
top: 0;
width: $issue-gravatar-size;
height: $issue-gravatar-size;
margin-right: 10px;
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
float: left;
}
@@ -29,7 +59,7 @@
> .subject,
> .author {
padding-left: $issue-gravatar-size + 10px;
padding-left: $issue-gravatar-size * 1.1 + 10px;
}
}
@@ -42,10 +72,10 @@
> .subject {
h3 {
margin-bottom: .3em;
color: $gray-darkest;
color: $gray-950;
font-size: $issue-heading-size * 1em;
font-weight: $font-weight-bold;
line-height: 1.2;
line-height: 1.1;
}
p {
@@ -58,8 +88,13 @@
margin-bottom: $line-height-computed;
}
> hr {
margin: $issue-padding (-$issue-padding);
> hr,
.attribute > hr {
@if $clean-issues {
margin: $issue-padding 0;
} @else {
margin: $issue-padding (-$issue-padding);
}
border-top-color: $issue-border;
}
@@ -69,19 +104,65 @@
}
> .wiki {
margin: 0 (-$issue-padding) (-$issue-padding);
padding: $padding-wiki;
border-top: 1px solid $issue-border;
background: $body-bg;
@if $clean-issues {
margin: 0 0 $issue-padding;
} @else {
margin: 0 (-$issue-padding) (-$issue-padding);
padding: $padding-wiki;
border-top: 1px solid $issue-border;
background: $body-bg;
}
}
}
.next-prev-links {
color: $gray-light;
margin: 0 0 $line-height-computed;
float: none;
color: $gray-600;
@media screen and (min-width: $screen-md-min) {
margin: 0;
float: right;
}
}
}
.attributes {
@if $color-status {
.attributes td.status,
.attributes .attribute.status .value {
display: inline-block;
width: auto;
min-width: 1em;
margin-top: $issue-attribute-padding-v;
padding: 1px $table-cell-padding;
border-radius: $border-radius-base;
background-color: $status-default-bg;
color: $status-default-color;
font-size: $font-size-small;
font-weight: $font-weight-bold;
text-align: center;
text-transform: uppercase;
}
@each $status, $status-colors in $status-colors-map {
&.#{$status} {
.attributes td.status,
.attributes .attribute.status .value {
background-color: map-get($status-colors, background);
color: map-get($status-colors, color);
}
}
}
}
@if $priority-icon {
.attributes td.priority,
.attribute.priority .value {
@include priority-icon-base;
}
}
table.attributes {
width: 100%;
th,
@@ -93,74 +174,77 @@
> tbody > tr {
th {
font-weight: normal;
color: $gray-700;
font-weight: $font-weight-normal;
}
td {
color: $gray-darkest;
color: $gray-950;
}
}
@media screen and (min-width: $screen-md-min) {
> tbody > tr {
> th,
> td {
width: 25%;
}
}
}
@media screen and (min-width: $screen-lg-min) {
width: auto;
> tbody > tr {
> th {
width: 14em;
width: $label-width;
}
> td {
width: auto;
min-width: 16em;
min-width: $label-width;
}
}
}
}
@if $color-status {
.attributes td.status,
.attribute.status .value {
display: inline-block;
width: auto;
min-width: 1em;
margin-top: $issue-attribute-padding-v;
padding: 1px $table-cell-padding;
border-radius: $border-radius-base;
background-color: $brand-primary;
color: $brand-text;
font-size: $font-size-small;
font-weight: $font-weight-bold;
text-align: center;
text-transform: uppercase;
}
div.attributes {
@if $css-grid-layout {
display: grid;
grid-gap: 0 $padding-side;
grid-template-columns: auto;
&.status-1 {
.attributes td.status,
.attribute.status .value {
background-color: $brand-info;
@media screen and (min-width: $screen-lg-min) {
grid-template-columns: repeat(2, minmax(auto, max-content));
.attribute .value {
min-width: $label-width;
}
}
}
&.closed {
.attributes td.status,
.attribute.status .value {
background-color: $brand-danger;
.splitcontent {
display: contents;
&::after {
content: none;
}
}
.splitcontentleft {
width: auto;
padding-right: 0;
padding-left: 0;
float: none;
}
} @else {
@media screen and (min-width: $screen-lg-min) {
.splitcontentleft {
width: auto;
}
.attribute .value {
min-width: $label-width;
}
}
}
}
.splitcontentleft {
@media screen and (min-width: $screen-lg-min) {
width: auto;
.splitcontent {
.attribute {
padding-left: $label-width;
.label {
width: $label-width;
margin-left: -$label-width;
}
}
}
@@ -173,20 +257,20 @@
}
.label {
width: 25%;
box-sizing: border-box;
float: left;
@media screen and (min-width: $screen-lg-min) {
width: 14em;
}
color: $gray-700;
}
.value {
color: $gray-darkest;
color: $gray-950;
@media screen and (min-width: $screen-lg-min) {
width: auto;
min-width: 14em + 16em;
&:empty::after {
content: "-";
}
*:last-child {
margin-bottom: 0;
}
}
}
@@ -196,19 +280,37 @@
}
div.attachments {
margin: 0;
padding: 0;
border-top: 0;
}
div.description + div.attachments {
margin: $issue-padding (-$issue-padding) (-$issue-padding);
padding: $issue-padding;
border-top: 1px solid $issue-border;
}
// Restore margin below buttons in reverse chronological mode
+ div[style] + .contextual {
margin-bottom: $line-height-computed;
}
}
div.fileover {
div.fileover,
p.custom-field-filedroplistner.fileover {
background-color: $highlight-bg;
}
div.attachments {
div.attachments:not(.box) {
padding: $line-height-computed 0;
border-top: 1px solid $issue-border;
@at-root .collapsible #{&} {
padding-top: 0;
border-top: 0;
}
p {
margin: 10px 0 0;
}
@@ -225,15 +327,15 @@ div.attachments {
}
.delete {
opacity: .5;
opacity: $icon-opacity;
&:hover {
opacity: 1;
opacity: $icon-hover-opacity;
}
}
span.author {
color: $gray;
color: $gray-700;
font-size: $font-size-small;
}
}
@@ -248,12 +350,12 @@ div.thumbnails {
a {
display: inline-block;
margin-right: 2px;
border: 1px solid $gray-lighter;
border: 1px solid $gray-400;
border-radius: $border-radius-base;
background-color: $body-bg;
&:hover {
border-color: $gray-light;
border-color: $gray-600;
}
}
@@ -261,6 +363,7 @@ div.thumbnails {
top: 0;
margin: 3px;
border-radius: $border-radius-base - 1;
vertical-align: middle;
}
}
@@ -271,33 +374,49 @@ div.thumbnails {
}
.issues {
margin: ($line-height-computed / 2) 0 0;
margin: ($line-height-computed * .5) 0 0;
tr {
background-color: transparent;
}
tr:last-child > td {
border-bottom: 0 none;
}
td.subject {
width: 50%;
}
td.checkbox {
display: none;
}
td.subject {
padding-left: 0;
td.done_ratio {
width: 80px;
}
td.buttons {
width: 3em;
vertical-align: middle;
a:not(:first-child) {
margin-left: 2px;
}
}
}
}
#relations {
td.checkbox {
display: none;
#trackers_description {
display: none;
dt {
margin: 0 0 ($line-height-computed * .25);
}
td.buttons {
padding: 0;
dd {
margin-right: 0;
margin-left: 0;
}
}
@@ -313,9 +432,13 @@ div.thumbnails {
}
}
#history {
overflow: auto;
#update > form {
margin-bottom: $line-height-computed;
padding-bottom: $line-height-computed;
border-bottom: 1px solid $issue-border;
}
#history {
> .tabs {
margin-bottom: $line-height-computed + 2px * 2;
}
@@ -347,53 +470,100 @@ div.thumbnails {
.journal {
position: relative;
margin-bottom: $line-height-computed + 2px * 2;
margin-bottom: $line-height-computed;
border: 1px solid $bubble-border;
border-radius: $panel-border-radius;
@if $use-gravatars {
margin-left: $bubble-gravatar-size + $bubble-gravatar-space;
}
&::before {
display: block;
position: absolute;
top: -($line-height-computed + 2px);
left: 22px;
width: 4px;
height: $line-height-computed;
background-color: darken($body-bg, 5%);
content: "";
z-index: -1;
}
&.changeset {
h4 + p {
margin-bottom: 0;
padding-bottom: $bubble-padding-vertical;
background-color: $bubble-bg;
font-size: $font-size-list;
.tabs + &::before {
display: none;
> a:first-child {
font-family: $font-family-monospace;
font-weight: $font-weight-bold;
}
}
}
> div {
border: 1px solid $issue-border;
border-radius: $panel-border-radius;
&:target {
border-color: darken($issue-border, 25%);
$border: $bubble-target-border;
$shadow: rgba($bubble-target-border, $bubble-target-shadow-alpha);
position: relative;
margin-top: -($responsive-header-height + 4px);
padding-top: ($responsive-header-height + 4px);
&::before {
content: "";
display: block;
position: absolute;
top: ($responsive-header-height + 4px);
right: 0;
bottom: 0;
left: 0;
border-radius: $panel-border-radius - 1px;
box-shadow: 0 0 0 1px $border, 0 0 0 4px $shadow;
pointer-events: none;
}
@if $use-gravatars {
h4::before {
border-right-color: darken($issue-border, 25%);
> h4::before {
border-right-color: $border;
filter: drop-shadow(-4px 0 0 $shadow);
}
}
@media screen and (min-width: $redmine-responsive-min) {
margin-top: -$line-height-computed;
padding-top: $line-height-computed;
&::before {
top: $line-height-computed;
}
}
}
}
h4 {
// For Redmine 4.0+
> div > .contextual,
> .contextual {
position: relative;
z-index: 1;
margin: 0;
padding: $bubble-padding-vertical $bubble-padding-horizontal;
font-size: $font-size-list;
> a.journal-link {
padding-left: $issue-attribute-padding-h;
opacity: 1;
color: $gray-700;
&::before {
content: "";
display: none;
}
}
}
> div > h4,
> h4 {
margin: 0;
padding: $bubble-padding-vertical $bubble-padding-horizontal;
border-radius: $panel-border-radius $panel-border-radius 0 0;
background-color: $issue-bg;
color: $gray;
background-color: $bubble-bg;
color: $gray-700;
font-size: $font-size-list;
font-weight: $font-weight-normal;
a {
color: $gray-darker;
color: $gray-900;
&.user {
font-weight: $font-weight-bold;
@@ -401,16 +571,18 @@ div.thumbnails {
}
.journal-link {
color: $gray;
color: $gray-700;
}
}
@if $use-gravatars {
h4 {
> div > h4,
> h4 {
position: relative;
&::before,
&::after {
content: " ";
display: block;
position: absolute;
top: 9px;
@@ -420,7 +592,6 @@ div.thumbnails {
height: 0;
border-style: solid solid outset;
border-color: transparent;
content: " ";
pointer-events: none;
}
@@ -428,15 +599,16 @@ div.thumbnails {
margin-top: 1px;
margin-left: 2px;
border-width: 6px;
border-right-color: $issue-bg;
border-right-color: $bubble-bg;
}
&::before {
border-width: 7px;
border-right-color: $issue-border;
border-right-color: $bubble-border;
}
> .gravatar {
top: 0;
margin-top: $line-height-computed - $bubble-gravatar-size;
margin-left: -($bubble-gravatar-size + $bubble-gravatar-space + $bubble-padding-horizontal + 1px);
float: left;
@@ -444,34 +616,26 @@ div.thumbnails {
}
}
> p {
padding-right: $bubble-padding-horizontal;
padding-left: $bubble-padding-horizontal;
&:empty {
margin-bottom: 0;
}
}
form,
.wiki,
.details {
border-top: 1px solid $bubble-border;
}
.details {
margin: 0;
padding: $bubble-padding-vertical 0;
padding-left: $bubble-padding-horizontal * 3;
border-top: 1px solid mix($body-bg, $issue-border, 50%);
padding-left: $bubble-padding-horizontal + 20px;
font-size: $font-size-list;
list-style: none;
li {
position: relative;
margin-bottom: $bubble-padding-vertical / 2;
&:last-child {
margin-bottom: 0;
}
&::before {
display: block;
position: absolute;
top: 5px;
left: -($bubble-padding-horizontal * 1.5 + 6px / 2);
width: 6px;
height: 6px;
border-radius: 50%;
background-color: $gray-light;
content: "";
}
}
img {
margin: 0 0 -3px 4px;
@@ -487,18 +651,26 @@ div.thumbnails {
}
}
.wiki,
form {
.wiki {
padding: $issue-padding;
border-top: 1px solid mix($body-bg, $issue-border, 50%);
}
form {
padding-top: 5px;
background-color: $gray-lightest;
padding: $bubble-padding-vertical $bubble-padding-horizontal $bubble-padding-horizontal;
background-color: $bubble-bg;
> p {
margin-bottom: $issue-padding;
&:last-child {
margin-bottom: 0;
}
}
> label {
display: inline-block;
margin-bottom: $line-height-computed * .5;
line-height: $line-height-base;
}
> .wiki {
@@ -535,12 +707,10 @@ div.thumbnails {
}
.private-notes {
> div {
border-left-color: $brand-warning;
border-left-color: $brand-warning;
h4::before {
border-right-color: $brand-warning;
}
> div > h4::before {
border-right-color: $brand-warning;
}
}
@@ -549,7 +719,16 @@ div.thumbnails {
clear: left;
}
.journal-actions > a,
.journal-actions .drdn-trigger {
margin: -3px 3px;
padding-top: 3px;
padding-bottom: 3px;
}
.journal-link {
margin: -3px -3px -3px 0;
padding: 3px;
float: right;
}
@@ -568,22 +747,30 @@ span.private {
@media screen and (min-width: $screen-md-min) {
width: 45%;
margin-left: $padding-side;
float: right;
+ #history {
margin-right: 45%;
padding-right: $padding-side;
}
}
@media screen and (min-width: $screen-lg-min) {
width: 33%;
min-width: 28em;
+ #history {
margin-right: 33%;
}
}
div.changeset {
margin-top: $line-height-computed / 2 + 2px * 2;
border: 1px solid $issue-border;
border-radius: $panel-border-radius;
background-color: $issue-bg;
font-size: $font-size-list;
margin-top: $line-height-computed * .5 + 2px * 2;
padding: 0;
overflow: hidden;
border: 1px solid $bubble-border;
border-radius: $panel-border-radius;
background-color: $bubble-bg;
font-size: $font-size-list;
&:first-of-type {
margin-top: 0;
@@ -593,15 +780,15 @@ span.private {
@include clearfix;
margin: 0;
padding: $padding-base-vertical $padding-base-horizontal;
color: $gray;
color: $gray-700;
> a {
> a:first-child {
font-family: $font-family-monospace;
font-weight: $font-weight-bold;
}
.author a {
color: $gray-darker;
color: $gray-900;
&.user {
font-weight: $font-weight-bold;
@@ -615,7 +802,7 @@ span.private {
> .wiki {
padding: $padding-base-vertical $padding-base-horizontal;
border-top: 1px solid mix($body-bg, $issue-border, 50%);
border-top: 1px solid $bubble-border;
background-color: $body-bg;
}
}

View File

@@ -43,21 +43,21 @@
a,
button {
&.ui-state-default {
&.ui-button {
border-color: $header-bg;
background: $header-bg;
box-shadow: none;
color: $header-text;
.ui-icon {
background-image: url("../../../stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
}
}
&.ui-state-hover,
&.ui-state-focus {
&.ui-button:hover {
border-color: darken($header-bg, 12%);
background: darken($header-bg, 10%);
}
.ui-icon {
background-image: url("/stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
}
}
}
@@ -70,9 +70,9 @@
.ui-widget-header .ui-state-default {
border: 1px solid $component-border;
background: $component-bg;
color: $component-color;
font-weight: normal;
box-shadow: none;
color: $component-color;
font-weight: $font-weight-normal;
}
.ui-state-default a,
@@ -91,7 +91,7 @@
border: 1px solid $component-active-border;
background: $component-active-bg;
color: $component-active-color;
font-weight: normal;
font-weight: $font-weight-normal;
}
.ui-state-hover a,
@@ -112,10 +112,10 @@
border: 1px solid $component-active-border;
background: $component-active-bg;
color: $component-active-color;
font-weight: normal;
font-weight: $font-weight-normal;
.ui-icon {
background-image: url("/stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
background-image: url("../../../stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
}
}
@@ -127,6 +127,7 @@
}
.ui-sortable-helper {
background-color: $body-bg;
@include nice-shadow(4);
}
@@ -138,6 +139,23 @@
@include nice-shadow(2);
padding: 3px;
border-radius: $panel-border-radius;
.ui-menu-item {
&.ui-state-focus,
&.ui-state-active {
border-color: $pagination-hover-border;
background-color: $pagination-hover-bg;
color: $pagination-hover-color;
a {
color: $pagination-hover-color;
}
.ui-icon {
background-image: url("../../../stylesheets/jquery/images/ui-icons_222222_256x240.png");
}
}
}
}
.ui-menu-item {
@@ -149,8 +167,8 @@
//
.modal {
background: $body-bg;
z-index: 50;
background: $body-bg;
h3.title {
display: none;
@@ -167,10 +185,10 @@
@include nice-shadow(5);
padding: 3px;
border: 0 none;
}
.ui-dialog-content {
padding: 1em;
.ui-dialog-content {
padding: 1em;
}
}
.ui-dialog-titlebar-close {
@@ -192,8 +210,8 @@
img.ui-datepicker-trigger {
margin-left: 4px;
cursor: pointer;
vertical-align: middle;
cursor: pointer;
}
.ui-datepicker {
@@ -282,7 +300,7 @@ img.ui-datepicker-trigger {
&.ui-datepicker-week-col {
padding-right: $table-condensed-cell-padding;
color: $gray-light;
color: $gray-600;
}
}
}
@@ -298,3 +316,17 @@ img.ui-datepicker-trigger {
}
}
}
.ui-tooltip {
@include nice-shadow(1);
padding: $padding-small-vertical $padding-small-horizontal;
border: 0 none;
background: $black;
color: $white;
font-size: $font-size-small-px;
pointer-events: none;
&.qtip {
pointer-events: initial;
}
}

View File

@@ -2,16 +2,86 @@
// WYSIWYG icons
// --------------------------------------------------
.jstElements {
// For Redmine 4.0+
#content {
div.jstTabs.tabs {
height: auto;
@if $flexbox-layout {
@media screen and (max-width: $redmine-responsive-max) {
clear: both;
}
}
> ul {
width: 100%;
height: auto;
> li {
height: auto;
margin: 0;
> a {
&:hover,
&:focus {
border-color: darken($tab-hover-border, 3%) darken($tab-hover-border, 3%) $tab-border;
background-color: darken($tab-hover-bg, 3%);
}
&.selected {
border-color: $tab-active-border $tab-active-border $tab-active-bg;
background: $tab-active-bg;
color: $tab-active-text;
&.tab-preview {
border-bottom-color: $wiki-preview-bg;
background-color: $wiki-preview-bg;
}
}
}
@if $flexbox-layout {
align-self: flex-end;
}
&::before {
content: none;
}
&.tab-elements {
flex: 1;
margin-left: 5px;
}
}
}
.jstElements {
height: auto;
}
}
.jstEditor {
.wiki-preview {
padding: $panel-body-padding;
border: 1px solid $input-border;
border-radius: $input-border-radius;
background-color: $wiki-preview-bg;
p {
padding: 0;
}
}
}
}
div.jstElements {
@extend %clearfix;
line-height: normal;
.box & {
display: block;
padding: 0;
button {
margin-right: 2px;
}
.jstSpacer {
margin-right: 4px;
}
@@ -23,153 +93,168 @@
float: right;
}
}
@media (min-width: $screen-lg) {
button {
margin-right: 4px;
}
.jstSpacer {
margin-right: 6px;
}
}
}
button {
margin-bottom: 5px;
margin-right: 2px;
margin-bottom: 4px;
padding: 0;
border: 0;
opacity: 1;
background-color: transparent;
box-shadow: none;
color: $gray-800;
vertical-align: top;
&::before {
text-align: center;
}
&:hover,
&:focus {
background-color: darken($tab-hover-bg, 3%);
color: $gray-900;
}
}
%jstb-icon {
@include fa-icon;
background: transparent;
background-image: none;
}
.jstb_strong {
@extend %jstb-icon;
&::before { content: $fa-var-bold; }
}
.jstb_em {
@extend %jstb-icon;
&::before { content: $fa-var-italic; }
}
.jstb_ins {
@extend %jstb-icon;
&::before { content: $fa-var-underline; }
}
.jstb_del {
@extend %jstb-icon;
&::before { content: $fa-var-strikethrough; }
}
.jstb_code {
@extend %jstb-icon;
&::before { content: $fa-var-code; }
}
.jstb_h1 {
@extend %jstb-icon;
&::before { content: $fa-var-header; }
}
.jstb_h2 {
@extend %jstb-icon;
&::before { content: $fa-var-header; font-size: .7857em; }
}
.jstb_h3 {
@extend %jstb-icon;
&::before { content: $fa-var-header; font-size: .6429em; }
}
.jstb_ul {
@extend %jstb-icon;
&::before { content: $fa-var-list-ul; }
}
.jstb_ol {
@extend %jstb-icon;
&::before { content: $fa-var-list-ol; }
}
.jstb_bq {
@extend %jstb-icon;
&::before { content: $fa-var-indent; }
}
.jstb_unbq {
@extend %jstb-icon;
&::before { content: $fa-var-outdent; }
}
.jstb_pre {
@extend %jstb-icon;
&::before { content: $fa-var-terminal; }
}
.jstb_link {
@extend %jstb-icon;
&::before { content: $fa-var-link; }
}
.jstb_img {
@extend %jstb-icon;
&::before { content: $fa-var-image; }
}
.jstb_cut {
@extend %jstb-icon;
&::before { content: $fa-var-scissors; }
}
.jstb_precode,
// For plugin https://github.com/mediatainment/redmine_codebutton
.jstb_codehighlight {
@extend %jstb-icon;
color: $brand-danger;
&::before { content: $fa-var-code; }
}
.jstb_table {
@extend %jstb-icon;
&::before { content: $fa-var-table; }
}
button.jstb_help {
@extend %jstb-icon;
color: $link-color;
&:hover {
color: $link-hover-color;
}
&::before { content: $fa-var-question-circle; }
}
}
@if $use-font-awesome {
.jstElements {
%jstb-icon {
@include fa-icon;
padding: 0;
background: $body-bg;
background-image: none;
color: $btn-default-color;
&::before {
text-align: center;
}
body {
.table-generator {
td {
border-color: $tab-border;
}
.jstb_strong {
@extend %jstb-icon;
&::before { content: $fa-var-bold; }
}
.jstb_em {
@extend %jstb-icon;
&::before { content: $fa-var-italic; }
}
.jstb_ins {
@extend %jstb-icon;
&::before { content: $fa-var-underline; }
}
.jstb_del {
@extend %jstb-icon;
&::before { content: $fa-var-strikethrough; }
}
.jstb_code {
@extend %jstb-icon;
&::before { content: $fa-var-code; }
}
.jstb_h1 {
@extend %jstb-icon;
&::before { content: $fa-var-header; }
}
.jstb_h2 {
@extend %jstb-icon;
&::before { font-size: .7857em; content: $fa-var-header; }
}
.jstb_h3 {
@extend %jstb-icon;
&::before { font-size: .6429em; content: $fa-var-header; }
}
.jstb_ul {
@extend %jstb-icon;
&::before { content: $fa-var-list-ul; }
}
.jstb_ol {
@extend %jstb-icon;
&::before { content: $fa-var-list-ol; }
}
.jstb_bq {
@extend %jstb-icon;
&::before { content: $fa-var-indent; }
}
.jstb_unbq {
@extend %jstb-icon;
&::before { content: $fa-var-outdent; }
}
.jstb_pre {
@extend %jstb-icon;
&::before { content: $fa-var-terminal; }
}
.jstb_link {
@extend %jstb-icon;
&::before { content: $fa-var-link; }
}
.jstb_img {
@extend %jstb-icon;
&::before { content: $fa-var-image; }
}
.jstb_cut {
@extend %jstb-icon;
&::before { content: $fa-var-scissors; }
}
.jstb_precode,
// For plugin https://github.com/mediatainment/redmine_codebutton
.jstb_codehighlight {
@extend %jstb-icon;
color: $brand-danger;
&::before { content: $fa-var-code; }
}
button.jstb_help {
@extend %jstb-icon;
color: $link-color;
&:hover {
color: $link-hover-color;
}
&::before { content: $fa-var-question-circle; }
td.selected-cell,
td:hover {
background-color: $brand-primary;
}
}
}

View File

@@ -2,6 +2,11 @@
// Lists
// --------------------------------------------------
table {
border-spacing: 0;
border-collapse: collapse;
}
table.list {
width: 100%;
margin-bottom: $line-height-computed;
@@ -20,11 +25,18 @@ table.list {
padding: $table-cell-padding;
border: 2px solid $table-border-color;
border-width: $table-list-header-border;
color: $gray;
background-color: $table-list-header-bg;
color: $gray-700;
vertical-align: bottom;
@if $table-list-header-bg == $body-bg {
@at-root .box & {
background-color: $panel-bg;
}
}
a {
color: $gray-darker;
color: $gray-900;
}
}
@@ -32,12 +44,6 @@ table.list {
background-color: $highlight-bg;
}
@if $table-list-highlight-rows {
> tbody > tr:hover {
background-color: $table-bg-hover;
}
}
td {
padding: $table-cell-padding;
border: 1px solid $table-border-color;
@@ -45,35 +51,64 @@ table.list {
text-align: center;
vertical-align: top;
&.checkbox {
width: 15px;
padding: $table-cell-padding 0 0;
input {
margin: 2px 0 0;
}
&.icon {
padding-left: $table-cell-padding + $icon-width;
}
&.id,
&.issue_id,
&.legacy_id,
&.parent,
&.relations,
&.tracker {
width: 2%;
}
&.id {
&.id,
&.issue_id,
&.legacy_id {
font-weight: $font-weight-bold;
text-align: right;
}
&.assigned_to,
&.author,
&.reorder {
white-space: nowrap;
}
&.attachments a {
display: block;
}
}
th,
td {
&.checkbox {
width: 15px;
padding-right: $table-cell-padding;
padding-left: $table-cell-padding;
@if (parse-length($table-list-item-border, right) == 0) {
&:first-child {
padding-right: 0;
}
}
input {
margin: 2px 0 0;
}
}
&.activity,
&.assigned_to,
&.attachments,
&.author,
&.category,
&.comments,
&.description,
&.fixed_version,
&.last_notes,
&.last_updated_by,
&.name,
&.parent-subject,
&.priority,
&.relations,
&.roles,
@@ -81,22 +116,21 @@ table.list {
&.string,
&.subject,
&.text,
&.tracker,
&.user {
text-align: left;
}
&.id,
&.legacy_id,
&.estimated_hours,
&.float,
&.int,
&.remaining_hours,
&.spent_hours,
&.story_points,
&.int,
&.float {
&.story_points {
text-align: right;
}
&.reorder {
white-space: nowrap;
}
}
td,
@@ -106,7 +140,11 @@ table.list {
white-space: nowrap;
a {
padding-right: 5px;
margin-right: $padding-small-vertical;
&.icon-only {
margin-right: 0;
}
}
img {
@@ -136,19 +174,18 @@ tr.project {
&.archived,
&.closed a,
&.archived a {
color: #aaa;
color: $gray-600;
}
&.idnt .name span {
@extend %image-arrow-right;
padding-left: 16px;
&.idnt td.name {
background-image: inline-svg("chevron-right.svg", (path: (fill: $gray-600)));
background-repeat: no-repeat;
background-position: -5px 50%;
}
@for $i from 1 through 9 {
&.idnt-#{$i} .name {
padding-left: $table-cell-padding + 16px * ($i - 1);
&.idnt-#{$i} td.name {
padding-left: $table-cell-padding + 16px * $i;
background-position: ($table-cell-padding + 16px * ($i - 1) - 3px) 50%;
}
}
}
@@ -157,10 +194,15 @@ tr.issue {
text-align: center;
white-space: nowrap;
.category,
.enumeration,
.list,
.parent-subject,
.parent,
.relations,
.string,
.text,
.subject,
.category {
.text {
white-space: normal;
}
@@ -173,13 +215,6 @@ tr.issue {
}
}
&.idnt .subject a {
@extend %image-arrow-right;
padding-left: 10px;
background-repeat: no-repeat;
background-position: -5px 0;
}
.controller-issues.action-index & {
&.assigned-to-me {
.assigned_to,
@@ -191,17 +226,41 @@ tr.issue {
}
}
&.idnt td.subject {
background-image: inline-svg("chevron-right.svg", (path: (fill: $gray-600)));
background-repeat: no-repeat;
}
&.overdue td.due_date {
color: $brand-danger;
}
@for $i from 1 through 9 {
&.idnt-#{$i} .subject {
padding-left: $table-cell-padding + 16px * ($i - 1);
&.idnt-#{$i} td.subject {
padding-left: $table-cell-padding + 16px * $i;
background-position: ($table-cell-padding + 16px * ($i - 1) - 3px) 50%;
}
}
}
.issues {
.description {
.block_column,
.description,
.last_notes {
padding: 0;
text-align: left;
white-space: normal;
> span {
display: block;
margin-bottom: $line-height-computed * .25;
padding: $table-cell-padding;
font-weight: $font-weight-bold;
}
pre {
white-space: normal;
}
@media screen and (min-width: $screen-sm-min) {
> .wiki {
@@ -210,26 +269,39 @@ tr.issue {
overflow: auto;
}
}
pre {
white-space: normal;
}
}
}
tr {
span.expander {
@extend %image-toggle-plus;
margin-left: 0;
padding-left: 8px;
background-repeat: no-repeat;
background-position: center center;
cursor: pointer;
user-select: none;
display: inline-block;
padding: 0;
float: left;
&.icon {
padding-left: 18px;
text-align: center;
&::before {
margin: 0 0 0 -18px;
color: $gray-600;
font-size: 12px;
}
}
&:not(.icon) {
width: 18px;
padding: 0;
background-image: inline-svg("plus.svg", (path: (fill: $btn-default-icon-color)));
background-repeat: no-repeat;
background-position: center center;
cursor: pointer;
user-select: none;
}
}
&.open span.expander {
@extend %image-toggle-minus;
&.open span.expander:not(.icon) {
background-image: inline-svg("minus.svg", (path: (fill: $btn-default-icon-color)));
}
}
@@ -237,16 +309,41 @@ td.center {
text-align: center;
}
td.assigned_to,
td.last_updated_by {
white-space: normal;
}
.issue-report {
table-layout: fixed;
}
.issue-report-graph {
width: 75%;
margin: $line-height-computed auto;
}
.sample-data {
margin: $line-height-computed * .5;
margin-bottom: $line-height-computed;
border: 1px solid $table-border-color;
td {
border: 1px solid $table-border-color;
}
tr:first-child td {
font-weight: $font-weight-bold;
text-align: center;
}
}
tr.builtin td.name {
font-style: italic;
}
tr.entry {
border: 1px solid $gray-lighter;
border: 1px solid $gray-400;
td {
white-space: nowrap;
@@ -278,7 +375,39 @@ tr.entry {
&.file td {
&.filename a,
&.filename_no_report a {
margin-left: 16px;
margin-left: 18px;
}
}
}
@if $table-list-color-odd-rows {
table.list:not(.odd-even) tbody tr:nth-child(odd):not(.ui-sortable-helper),
.odd {
> td {
background-color: $table-bg-accent;
}
}
}
@if $table-list-color-even-rows {
table.list:not(.odd-even) tbody tr:nth-child(even):not(.ui-sortable-helper),
.even {
> td {
background-color: $table-bg-accent;
}
}
}
@if $table-list-highlight-rows {
table.list > tbody > tr:nth-child(n):hover:not(.ui-sortable-helper) {
background-color: $table-bg-hover;
@if $color-priorities {
@each $priority-id, $priority-color in $priority-color-map {
&.priority-#{$priority-id} {
background-color: rgba(map-get($priority-color, background), $table-color-hover-factor);
}
}
}
}
}
@@ -287,17 +416,49 @@ tr.entry {
//== Priorities
//
@if $priority-icon {
table.list tbody tr {
.priority {
@include priority-icon-base;
}
}
@each $priority-id, $priority-icon in $priority-icons-map {
@include priority-icon(
".priority-#{$priority-id}",
map-get($priority-icon, color),
map-get($priority-icon, icon)
);
}
}
@if $color-priorities {
// scss-lint:disable SpaceAfterComma
@include priority(".priority-lowest", $priority-lowest-bg, $priority-lowest-text, $priority-lowest-link);
@include priority(".priority-default", $priority-default-bg, $priority-default-text, $priority-default-link);
@include priority(".priority-high3", $priority-high3-bg, $priority-high3-text, $priority-high3-link);
@include priority(".priority-high2", $priority-high2-bg, $priority-high2-text, $priority-high2-link);
@include priority(".priority-highest", $priority-highest-bg, $priority-highest-text, $priority-highest-link);
@each $priority-id, $priority-color in $priority-color-map {
tr.priority-#{$priority-id} {
&.odd td {
background-color: rgba(map-get($priority-color, background), $table-color-odd-factor);
}
&.even td {
background-color: rgba(map-get($priority-color, background), $table-color-even-factor);
}
td {
border-color: map-get($priority-color, border);
color: map-get($priority-color, color);
}
a {
color: map-get($priority-color, link);
}
}
}
}
@if $color-trackers {
tr.issue .id > a,
tr.issue .issue_id > a,
tr.issue .legacy_id > a,
a.issue,
.relations > span > a.issue,
.parent > a.issue {
@@ -320,7 +481,7 @@ tr.entry {
a.issue {
margin-right: 1px;
padding: $tracker-inline-padding;
font-weight: normal;
font-weight: $font-weight-normal;
&.closed {
position: relative;
@@ -328,16 +489,16 @@ tr.entry {
text-decoration: none;
&::after {
content: "";
display: block;
position: absolute;
right: 5px;
bottom: 0;
left: 5px;
height: calc(50% - 2px/2);
height: calc(50% - 2px * .5);
transform: rotate(-4deg);
transition: border-color .1s;
transition: border-color $transition-time;
border-top: 2px solid rgba($tracker-default-text, .95);
content: "";
}
&:hover::after {
@@ -346,24 +507,20 @@ tr.entry {
}
}
tr.issue .id > a {
tr.issue .id > a,
tr.issue .legacy_id > a {
display: block;
padding: $tracker-list-padding;
&::before {
color: mix($tracker-default-text, $tracker-default-bg, 50%);
content: "#";
color: mix($tracker-default-text, $tracker-default-bg, 50%);
}
}
@if $colored-issue {
.issue.details a.issue,
.issue.details .wiki a.issue {
&,
&:hover {
color: $tracker-default-text;
}
}
tr.issue .issue_id > a {
display: inline-block;
padding: $tracker-list-padding;
}
@each $tracker-id, $tracker-colors in $tracker-colors-map {
@@ -375,18 +532,6 @@ tr.entry {
}
}
@if $table-list-color-odd-rows {
.odd {
background-color: $table-bg-accent;
}
}
@if $table-list-color-even-rows {
.even {
background-color: $table-bg-accent;
}
}
//== List groups
//
@@ -404,25 +549,13 @@ tr.group {
.toggle-all {
display: none;
color: $gray-light;
font-weight: normal;
color: $gray-600;
font-weight: $font-weight-normal;
}
&:hover .toggle-all {
display: inline;
}
.count {
display: inline-block;
min-width: 1em;
margin: 0 5px;
padding: 1px 4px;
border-radius: $border-radius-small;
background-color: $brand-primary;
color: $brand-text;
font-size: $font-size-small;
text-align: center;
}
}
.toggle-all:hover {
@@ -480,7 +613,7 @@ tr.time-entry {
}
tr.time-entry td.hours {
font-weight: normal;
font-weight: $font-weight-normal;
}
}
@@ -499,10 +632,10 @@ tr.wiki-page-version {
tr.version {
&.closed {
color: $gray;
color: $gray-700;
a {
color: $gray;
color: $gray-700;
}
}
@@ -541,7 +674,7 @@ tr.user {
&.registered,
&.locked a,
&.registered a {
color: $gray-light;
color: $gray-600;
}
}
@@ -577,7 +710,7 @@ table.files {
tr.file td {
&.filename {
padding-left: 20px + $table-cell-padding;
padding-left: $icon-width + $table-cell-padding;
text-align: left;
}
@@ -603,11 +736,32 @@ table.files {
}
}
table.list.enumerations {
table-layout: fixed;
+ h3 {
margin-top: $line-height-computed * 2;
}
+ p {
margin-bottom: $line-height-computed * 2;
}
}
//== Totals
//
.query-totals {
#content & {
margin-top: 0;
@media screen and (min-width: $redmine-responsive-min) {
margin-top: -($line-height-computed * 2 + $btn-padding-vertical);
text-align: right;
}
}
> span {
margin-right: $padding-base-horizontal;

View File

@@ -2,46 +2,110 @@
// Login form
// --------------------------------------------------
$login-form-width: 350px;
$login-input-width: 200px;
#login-form {
margin: $line-height-computed * 2 auto;
box-sizing: border-box;
margin: $line-height-computed * 2 auto $line-height-computed;
label,
input:not([type="checkbox"]) {
width: 100%;
}
label {
display: block;
margin-bottom: $padding-base-vertical;
font-weight: $font-weight-bold;
line-height: inherit;
&[for="autologin"] {
@include check;
margin-bottom: $line-height-computed;
}
> a {
float: right;
font-weight: $font-weight-normal;
}
}
input[type="text"],
input[type="password"] {
margin-bottom: $panel-body-padding-vertical;
}
#login-submit {
padding-top: $padding-base-vertical;
padding-bottom: $padding-base-vertical;
}
table {
margin: auto;
table-layout: fixed;
}
@media screen and (min-width: $screen-sm-min) {
width: $login-form-width;
td {
padding: 0;
padding: $panel-body-padding;
&:first-child {
width: $login-form-label-width;
padding-right: $table-cell-padding;
white-space: nowrap;
}
> label {
margin-bottom: $panel-body-padding-vertical;
}
> input[type="submit"] {
width: auto;
margin-right: 0;
}
}
@media screen and (min-width: $login-form-box-breakpoint) {
width: $login-form-width;
padding: $padding-side;
border: 1px solid $panel-border;
border-radius: $border-radius-base;
background-color: $panel-bg;
color: $panel-color;
box-shadow: $panel-shadow;
color: $panel-color;
table {
width: 100%;
}
}
td {
width: 90%; // make columns expand
padding: $table-cell-padding;
@each $adjustment, $languages in $login-form-adjustments-map {
@each $language in $languages {
html[lang="#{$language}"] & td:first-child {
width: $login-form-label-width + $adjustment * 1em;
}
}
}
}
#username,
#password,
#openid_url {
width: $login-input-width;
}
#openid_url {
padding-right: 8px + 24px;
padding-right: $input-padding-horizontal + 24px;
background-image: url("../../../images/openid-bg.gif");
background-repeat: no-repeat;
background-position: ($login-input-width - 24px) center;
background-position: right $input-padding-horizontal center;
}
//
// Two-factor authentication
// --------------------------------------------------
.controller-twofa {
.splitcontentleft {
width: auto;
padding-right: 0;
}
}
ul.twofa_backup_codes {
margin-left: 0;
padding: 0;
list-style-type: none;
}

View File

@@ -54,11 +54,11 @@
.page.current,
.current > span {
z-index: 2;
border-color: $pagination-active-border;
background-color: $pagination-active-bg;
color: $pagination-active-color;
cursor: default;
z-index: 2;
}
.items,

File diff suppressed because it is too large Load Diff

View File

@@ -15,27 +15,65 @@
display: none;
}
.pagination {
.pages,
.per-page {
display: none;
}
}
#main {
background: #fff;
display: block;
overflow: visible !important; // stylelint-disable-line declaration-no-important
background: $white;
}
#content {
width: 100%;
margin: 0;
padding: 0;
overflow: visible !important; // stylelint-disable-line declaration-no-important
border: 0;
background: #fff;
overflow: visible !important; // scss-lint:disable ImportantRule
background: $white;
}
.autoscroll {
overflow-x: visible;
}
a {
// stylelint-disable declaration-no-important
padding: 0 !important;
background-color: transparent !important;
color: $black !important;
&::before,
&::after {
display: none !important;
}
&.issue.closed {
text-decoration: line-through;
}
}
table.list {
tr {
background-color: transparent;
}
th,
td {
border: 1px solid #aaa;
border: 1px solid $gray-500;
background-color: transparent;
&.buttons {
padding: 0;
a {
display: none;
}
}
}
}
}

View File

@@ -4,11 +4,11 @@
table.progress {
width: 80px;
margin-top: 1px;
margin-top: 3px;
margin-right: 5px;
float: left;
border: 1px solid rgba(#000, .1);
empty-cells: show;
border: 0 none;
.version-overview & {
width: 40em;
@@ -20,27 +20,46 @@ table.progress {
float: none;
}
tr {
background: transparent !important; // stylelint-disable-line declaration-no-important
}
td {
height: 12px;
height: $progress-height;
padding: 0;
border: 0 none;
&.closed {
background-color: $progress-bar-success-bg;
&:first-child {
border-top-left-radius: $progress-height * .5;
border-bottom-left-radius: $progress-height * .5;
}
&:last-child {
border-top-right-radius: $progress-height * .5;
border-bottom-right-radius: $progress-height * .5;
}
&.done {
background-color: mix($progress-bar-success-bg, $progress-bg, 50%);
background-color: $progress-bar-bg !important; // stylelint-disable-line declaration-no-important
}
&.closed {
background-color: $progress-bar-success-bg !important; // stylelint-disable-line declaration-no-important
}
&.todo {
background-color: $progress-bg;
background-color: $progress-bg !important; // stylelint-disable-line declaration-no-important
mix-blend-mode: multiply;
}
}
.issue & td {
padding: 0;
}
.context-menu-selection & td.todo {
mix-blend-mode: screen;
}
}
p {
@@ -50,10 +69,8 @@ p {
}
&.progress-info {
margin-top: -4px;
margin-bottom: 0;
clear: left;
color: #777;
color: $gray-700;
font-size: 80%;
}
}

View File

@@ -0,0 +1,498 @@
.hidden,
.mobile-show {
display: none;
}
.inline-flex {
display: inline-flex;
body.controller-issues h2 & {
padding-right: 0;
}
}
// stylelint-disable selector-max-compound-selectors
body {
@media screen and (max-width: $redmine-responsive-max) {
.flyout-menu + div {
#header {
height: $responsive-header-height;
background-color: $header-bg;
.jump-box-arrow {
&::before {
line-height: $responsive-header-height;
}
}
#quick-search {
select {
top: 0;
height: $responsive-header-height;
box-shadow: none;
}
}
}
#main {
padding-top: $responsive-header-height;
}
}
#header {
background-color: $header-bg;
#project-jump {
padding: 0 $responsive-header-height 0 0;
&.expanded {
.drdn-trigger {
&::before {
padding: 0;
transform: rotate(180deg);
}
}
}
.drdn-trigger {
@include text-overflow;
display: block;
height: $responsive-header-height;
padding: 0;
background-color: transparent;
box-shadow: none;
font-size: $font-size-large;
font-weight: $font-weight-normal;
line-height: $responsive-header-height;
&::before {
@include fa-icon;
content: $fa-var-chevron-down;
position: relative;
top: -.1em;
width: $responsive-header-height * .75;
padding: 0;
transform: none;
font-size: .8em;
text-align: center;
}
&::after {
display: none;
}
}
.drdn-content {
top: $responsive-header-height;
font-size: $font-size-base;
}
}
}
#content {
overflow: auto;
}
#ajax-indicator {
left: 50%;
width: 200px;
}
.mobile-toggle-button {
width: $responsive-header-height;
height: $responsive-header-height;
line-height: $responsive-header-height;
&:focus {
text-decoration: none;
}
}
.flyout-menu {
background-color: $flyout-menu-bg;
color: $flyout-menu-text;
.search-magnifier {
left: 18px;
}
&__search {
height: $responsive-header-height;
padding: ($padding-side * .5);
line-height: normal;
input[type="text"] {
height: $responsive-header-height - $padding-side;
line-height: $responsive-header-height - $padding-side;
}
}
&__avatar {
img.gravatar {
top: 0;
padding: 5px;
}
}
&__sidebar {
p {
padding-left: $padding-large-horizontal;
}
}
ul {
li:nth-child(n) {
a:not(.icon-only) {
height: auto;
padding: $padding-large-vertical $padding-large-horizontal;
line-height: $line-height-base;
}
}
&.queries {
li {
display: flex;
a {
flex: 1 1 auto;
}
.icon-only {
flex: 0;
padding-right: 0;
padding-left: 40px;
text-align: center;
text-overflow: initial;
&::before {
width: 40px;
margin-left: -40px;
}
}
}
}
}
a {
&,
&:hover,
&:focus {
color: $flyout-menu-link;
&::before,
span {
color: inherit !important; // stylelint-disable-line declaration-no-important
}
}
&.selected {
background-color: $flyout-menu-link-active-bg;
color: $flyout-menu-link-active;
}
}
h3,
h4 {
height: auto;
margin: 0;
padding: $padding-base-vertical $padding-base-horizontal;
border-top: 1px solid $flyout-menu-header-border;
border-bottom: 1px solid $flyout-menu-header-border;
background-color: $flyout-menu-header-bg;
color: $flyout-menu-header-text;
line-height: $line-height-base;
+ p {
margin-top: $padding-large-vertical;
}
}
h4 {
padding: 0 $padding-base-horizontal;
}
form {
padding-left: 0;
> ul {
margin-left: 0;
li:nth-child(n) {
padding-left: $padding-large-horizontal;
line-height: inherit;
label {
a {
display: block;
padding: $padding-base-vertical $padding-base-horizontal;
}
}
}
+ p {
margin-top: $padding-large-vertical;
}
}
}
#admin-menu {
a {
background-position: 8px center !important; // stylelint-disable-line declaration-no-important
&.additionals {
padding-left: 32px !important; // stylelint-disable-line declaration-no-important
&::before {
margin-right: $padding-small-vertical;
font-size: $fa-font-size-base;
}
}
}
}
#watchers {
.contextual {
padding-top: $line-height-computed * .5;
padding-bottom: $line-height-computed * .5;
}
.watchers {
li {
margin: ($line-height-computed * .5) 0 0;
padding: 0;
img.gravatar {
top: 0;
}
a {
height: auto;
border-top: 0;
line-height: initial;
}
.delete {
margin-right: $padding-large-vertical;
margin-left: auto;
float: none;
text-align: center;
text-overflow: initial;
}
}
}
}
}
#query_form_content {
fieldset {
margin-bottom: $line-height-computed;
}
}
.search-magnifier {
&--flyout {
line-height: normal;
}
}
.splitcontentleft {
margin-bottom: $line-height-computed;
padding-right: 0;
float: none;
}
.splitcontentright {
padding-left: 0;
float: none;
}
.attributes .splitcontentleft {
margin-bottom: 0;
}
.tabular {
input[type="checkbox"],
input[type="radio"],
input.date {
width: auto;
max-width: 95%;
}
label {
float: none;
}
}
.pagination {
.pages {
display: block;
}
}
p.buttons,
.other-formats > span,
#wiki_add_attachment > p,
#content > .contextual,
#content > .contextual > span,
#query_form > .contextual,
#query_form_with_buttons > .contextual {
margin-bottom: $line-height-computed - $padding-small-horizontal;
padding: 0;
float: none;
text-align: left;
a {
padding: $btn-padding-vertical $btn-padding-horizontal-small;
border: 1px solid $pagination-border;
border-radius: $border-radius-base;
background-color: $pagination-bg;
color: $pagination-color;
font-weight: $font-weight-normal;
&:hover,
&:focus {
border-color: $pagination-hover-border;
background-color: $pagination-hover-bg;
color: $pagination-hover-color;
text-decoration: none;
}
&.icon {
padding-left: 20px + $btn-padding-horizontal-small;
background-position: $btn-padding-horizontal-small 50%;
}
}
a,
input,
select,
label {
margin-top: 0;
margin-bottom: 5px;
}
label {
display: inline-block;
input[type="checkbox"],
input[type="radio"] {
margin-top: $check-input-margin-btn-v;
}
}
}
#content > .contextual > span {
margin-bottom: 0;
}
#content > .contextual > a,
#content > .contextual .drdn,
p.buttons a {
display: inline-block;
margin: 0 2px 5px 0;
float: none;
}
// For Redmine 4.0+
#content > .contextual .drdn {
padding: 0;
border: 0;
.drdn-trigger {
padding: $btn-padding-vertical $btn-padding-horizontal;
}
.drdn-items {
a {
margin: 3px 0 0;
padding-top: $btn-padding-vertical;
padding-bottom: $btn-padding-vertical;
&:first-child {
margin-top: 0;
}
}
}
}
// For Redmine 3.4+
#my-page {
display: block;
}
div#issue-changesets {
div.changeset {
padding: 0;
}
}
#admin-index > #admin-menu li {
padding: 0;
a {
background-position: 8px center !important; // stylelint-disable-line declaration-no-important
}
}
/* Calendar */
ul.cal {
display: block;
.calhead {
display: none;
}
.calbody {
min-height: calc(1.2em * 3);
}
.calbody .day-letter {
display: inline;
}
.week-number {
border: none;
background-color: $table-bg-active;
font-weight: bold;
text-align: left;
span.label-week {
display: inline;
}
}
.week-number .label-week {
display: inline;
}
.calbody p.day-num {
font-size: 1.1em;
text-align: left;
.abbr-day {
display: inline;
}
}
}
}
// Tweaks for smartphones, touchscreens
@media (hover: none) and (pointer: coarse) {
.mobile-toggle-button::after {
margin-top: 0;
}
.query-columns {
span {
display: block;
margin-bottom: $line-height-computed * .5;
}
.buttons {
input[type="button"] {
display: inline-block;
}
}
}
}
}

View File

@@ -0,0 +1,320 @@
.syntaxhl {
color: #24292e;
.hll {
background-color: #ffc;
}
// Comment
.c {
color: #6a737d;
}
// Keyword
.k {
color: #d73a49;
}
// Comment.Hashbang
.ch {
color: #6a737d;
}
// Comment.Multiline
.cm {
color: #6a737d;
}
// Comment.Preproc
.cp {
color: #d73a49;
}
// Comment.PreprocFile
.cpf {
color: #032f62;
}
// Comment.Single
.c1 {
color: #6a737d;
}
// Comment.Special
.cs {
color: #6a737d;
}
// Generic.Deleted
.gd {
background-color: #ffeef0;
color: #b31d28;
}
// Generic.Heading
.gh {
color: #005cc5;
}
// Generic.Inserted
.gi {
background-color: #f0fff4;
color: #22863a;
}
// Generic.Strong
.gs {
font-weight: bold;
}
// Generic.Subheading
.gu {
color: #6f42c1;
font-weight: bold;
}
// Generic.Traceback
.gt {
color: #04d;
}
// Keyword.Constant
.kc {
color: #005cc5;
}
// Keyword.Declaration
.kd {
color: #d73a49;
}
// Keyword.Namespace
.kn {
color: #d73a49;
}
// Keyword.Pseudo
.kp {
color: #d73a49;
}
// Keyword.Reserved
.kr {
color: #d73a49;
}
// Keyword.Type
.kt {
color: #d73a49;
}
// Literal.Number
.m {
color: #005cc5;
}
// Literal.String
.s {
color: #032f62;
}
// Name.Attribute
.na {
color: #005cc5;
}
// Name.Builtin
.nb {
color: #005cc5;
}
// Name.Class
.nc {
color: #6f42c1;
}
// Name.Constant
.no {
color: #005cc5;
}
// Name.Decorator
.nd {
color: #6f42c1;
}
// Name.Entity
.ni {
color: #005cc5;
}
// Name.Exception
.ne {
color: #005cc5;
}
// Name.Function
.nf {
color: #6f42c1;
}
// Name.Label
.nl {
color: #005cc5;
}
// Name.Namespace
.nn {
color: #6f42c1;
}
// Name.Tag
.nt {
color: #22863a;
}
// Name.Variable
.nv {
color: #24292e;
}
// Operator
.o {
color: #d73a49;
}
// Operator.Word
.ow {
color: #d73a49;
}
// Text.Whitespace
.w {
color: #bbb;
}
// Literal.Number.Bin
.mb {
color: #005cc5;
}
// Literal.Number.Float
.mf {
color: #005cc5;
}
// Literal.Number.Hex
.mh {
color: #005cc5;
}
// Literal.Number.Integer
.mi {
color: #005cc5;
}
// Literal.Number.Oct
.mo {
color: #005cc5;
}
// Literal.String.Affix
.sa {
color: #d73a49;
}
// Literal.String.Backtick
.sb {
color: #032f62;
}
// Literal.String.Char
.sc {
color: #032f62;
}
// Literal.String.Delimiter
.dl {
color: #d73a49;
}
// Literal.String.Doc
.sd {
color: #032f62;
}
// Literal.String.Double
.s2 {
color: #032f62;
}
// Literal.String.Escape
.se {
color: #032f62;
}
// Literal.String.Heredoc
.sh {
color: #032f62;
}
// Literal.String.Interpol
.si {
color: #005cc5;
}
// Literal.String.Other
.sx {
color: #032f62;
}
// Literal.String.Regex
.sr {
color: #032f62;
}
// Literal.String.Single
.s1 {
color: #032f62;
}
// Literal.String.Symbol
.ss {
color: #005cc5;
}
// Name.Builtin.Pseudo
.bp {
color: #005cc5;
}
// Name.Function.Magic
.fm {
color: #005cc5;
}
// Name.Variable.Class
.vc {
color: #24292e;
}
// Name.Variable.Global
.vg {
color: #24292e;
}
// Name.Variable.Instance
.vi {
color: #24292e;
}
// Name.Variable.Magic
.vm {
color: #005cc5;
}
// Literal.Number.Integer.Long
.il {
color: #005cc5;
}
}

View File

@@ -26,7 +26,7 @@
span.description {
display: block;
color: $gray;
color: $gray-700;
font-style: italic;
}
}
@@ -44,9 +44,9 @@
h4 {
margin: 0 0 $line-height-computed;
padding-bottom: .2em;
border-bottom: 1px dotted $gray-light;
border-bottom: 1px dotted $gray-600;
font-size: $font-size-h4;
font-weight: normal;
font-weight: $font-weight-normal;
}
dt {
@@ -55,15 +55,16 @@
}
&.me .time {
border-bottom: 1px solid $gray-lighter;
border-bottom: 1px solid $gray-400;
}
.time {
color: $gray;
color: $gray-700;
}
@if $use-gravatars {
.gravatar {
top: 0;
margin-top: -2px;
margin-right: $activity-avatar-space;
float: left;
@@ -72,8 +73,8 @@
}
dd {
font-size: $font-size-small;
overflow: hidden;
font-size: $font-size-small;
&.grouped {
margin-left: $activity-indent;
@@ -99,15 +100,22 @@
// Search form
#search-form {
margin-bottom: $line-height-computed;
input,
select {
margin-right: 5px;
margin-bottom: $line-height-computed * .5;
}
label {
@include checkbox;
display: inline-block;
margin-right: 5px;
@include check-inline;
line-height: $input-height-base;
input[type="checkbox"],
input[type="radio"] {
margin-top: $check-input-margin-btn-v;
}
}
p:last-child {
@@ -119,9 +127,21 @@
// Search results highlight
.highlight {
background-color: #fe8;
background-color: saturate(shade($yellow, 100), 25%);
color: saturate(shade($yellow, 800), 25%);
&.token-1 { background-color: #fba; }
&.token-2 { background-color: #afb; }
&.token-3 { background-color: #aef; }
&.token-1 {
background-color: saturate(shade($red, 100), 25%);
color: saturate(shade($red, 800), 25%);
}
&.token-2 {
background-color: saturate(shade($green, 100), 25%);
color: saturate(shade($green, 800), 25%);
}
&.token-3 {
background-color: saturate(shade($blue, 100), 25%);
color: saturate(shade($blue, 800), 25%);
}
}

View File

@@ -2,11 +2,12 @@
// Tabs
// --------------------------------------------------
$tabs-height: $line-height-computed + $tab-padding-vertical * 2 + 1px + 1px;
.tabs {
$tabs-buttons-width: 40px;
position: relative;
margin-bottom: $line-height-computed;
overflow: hidden;
@if not $flexbox-layout {
@@ -14,23 +15,21 @@
}
> ul {
box-sizing: border-box;
margin: 0;
padding-left: 0;
border-bottom: 1px solid $tab-border;
list-style: none;
@if $flexbox-layout {
display: flex;
flex-wrap: nowrap;
height: $line-height-computed + $tab-padding-vertical * 2 + 1px;
height: $tabs-height;
} @else {
width: 2000px;
@extend %clearfix;
}
> li {
margin-bottom: -1px;
@if $flexbox-layout {
flex: 0 1 auto;
} @else {
@@ -39,26 +38,15 @@
> a {
display: block;
min-width: 2em;
box-sizing: border-box;
min-width: 3em;
height: $tabs-height;
margin-right: 2px;
padding: $tab-padding-vertical $tab-padding-horizontal;
border: 1px solid transparent;
border-radius: $border-radius-base $border-radius-base 0 0;
text-align: center;
white-space: nowrap;
&:hover,
&:focus {
border-color: $tab-hover-border $tab-hover-border $tab-border;
background-color: $tab-hover-bg;
text-decoration: none;
}
&.selected {
border-color: $tab-active-border $tab-active-border $tab-active-bg;
background: $tab-active-bg;
color: $tab-active-text;
}
}
}
}
@@ -68,41 +56,82 @@
top: 0;
right: 0;
width: $tabs-buttons-width;
padding-left: 5px;
border-bottom: 1px solid $tab-border;
background-color: $body-bg;
> button {
width: 50%;
height: $tab-padding-vertical * 2 + $line-height-computed + 1px;
height: $tabs-height - 1px;
margin: 0;
padding: 0;
float: left;
transition: opacity .1s;
transition: opacity $transition-time;
border: 0 none;
border-radius: 0;
opacity: $icon-opacity;
background-color: $body-bg;
background-repeat: no-repeat;
background-position: center center;
box-shadow: none;
opacity: .8;
&:hover,
&:active {
opacity: 1;
opacity: $icon-hover-opacity;
}
&:active {
background-color: $tab-hover-bg;
}
&.disabled {
opacity: $icon-opacity * .5;
}
}
.tab-left {
@extend %image-arrow-left;
background-image: inline-svg("chevron-left.svg", (path: (fill: $btn-default-icon-color)));
}
.tab-right {
@extend %image-arrow-right;
background-image: inline-svg("chevron-right.svg", (path: (fill: $btn-default-icon-color)));
}
}
}
div.tabs:not(#main-menu) {
height: $tabs-height;
margin-bottom: $line-height-computed;
> ul {
margin: 0;
padding: 0;
border-bottom: 1px solid $tab-border;
> li {
margin: 0 0 -1px;
background: transparent;
> a {
padding: $tab-padding-vertical $tab-padding-horizontal;
border-color: transparent;
background: transparent;
color: $link-color;
font: inherit;
&:hover,
&:focus {
border-color: $tab-hover-border $tab-hover-border $tab-border;
background-color: $tab-hover-bg;
color: $tab-hover-text;
text-decoration: none;
}
&.selected {
border-color: $tab-active-border $tab-active-border $tab-active-bg;
background: $tab-active-bg;
color: $tab-active-text;
}
}
}
}
}
@@ -133,12 +162,12 @@
}
label {
@include checkbox;
@include check;
display: block;
margin-bottom: 3px;
}
label[for=principal_search] {
label[for="principal_search"] {
padding-left: 0;
}
}

View File

@@ -3,18 +3,21 @@
// --------------------------------------------------
#top-menu {
$top-menu-padding-vertical: $padding-small-vertical + 1px;
$top-menu-padding-horizontal: $padding-side;
@extend %clearfix;
position: relative;
padding: $padding-small-vertical $padding-side;
box-sizing: border-box;
padding: $top-menu-padding-vertical $top-menu-padding-horizontal;
background: $top-menu-bg;
color: $top-menu-text;
font-size: $font-size-small;
@if $top-menu-collapse {
$toggler-position-v: $padding-small-vertical + 1px;
$toggler-position-v: $top-menu-padding-vertical + 1px;
$toggler-position-h: 1px;
max-height: floor($font-size-base * $font-size-small-unitless * $line-height-base) + $padding-small-vertical;
position: relative;
max-height: floor($font-size-base * $font-size-small-unitless * $line-height-base) + $top-menu-padding-vertical * 2;
padding-bottom: 0;
overflow: hidden;
@@ -24,11 +27,12 @@
a {
display: inline-block;
margin-bottom: $padding-small-vertical;
margin-bottom: $top-menu-padding-vertical;
white-space: nowrap;
}
.top-menu-toggler {
@extend %fa-icon;
display: block;
position: absolute;
top: $toggler-position-v;
@@ -37,53 +41,25 @@
} @else {
right: $toggler-position-h;
}
color: mix($top-menu-link, $top-menu-bg, 33%);
font-size: $fa-font-size-base;
line-height: 1;
user-select: none;
@if $use-font-awesome {
font-size: 14px;
&::before {
content: $fa-var-caret-square-o-down;
}
} @else {
@extend %image-arrow-down-white;
&::before {
content: $fa-var-caret-square-o-down;
margin-right: 0;
}
@if $use-font-awesome {
@extend %fa-icon;
color: mix($top-menu-link, $top-menu-bg, 33%);
line-height: 1;
&::before {
margin-right: 0;
}
&:hover,
&:focus,
&:active {
color: mix($top-menu-link-hover, $top-menu-bg, 50%);
}
} @else {
width: 15px;
height: 15px;
border-radius: $border-radius-base;
background-repeat: no-repeat;
background-position: center center;
&:hover,
&:focus,
&:active {
background-color: lighten($top-menu-bg, 15%);
}
&:hover,
&:focus,
&:active {
color: mix($top-menu-link-hover, $top-menu-bg, 50%);
}
&.expanded {
@if $use-font-awesome {
&::before {
content: $fa-var-caret-square-o-up;
}
} @else {
@extend %image-arrow-up-white;
&::before {
content: $fa-var-caret-square-o-up;
}
}
@@ -94,15 +70,17 @@
}
ul {
@include clearfix;
margin: 0;
padding: 0;
}
li {
display: inline;
margin: 0 .5em 0 0;
margin: 0 .8em 0 0;
padding: 0;
float: left;
list-style-type: none;
white-space: nowrap;
}
a {
@@ -126,7 +104,7 @@
> ul > li {
margin-right: 0;
margin-left: .5em;
margin-left: .8em;
}
}
@@ -157,11 +135,11 @@
.root {
color: $header-root;
font-weight: 500;
font-weight: $font-weight-semi-bold;
}
.ancestor {
font-weight: 500;
font-weight: $font-weight-semi-bold;
}
.root,
@@ -180,34 +158,31 @@
}
#quick-search {
margin-top: floor(($header-title-line-height + $header-padding-vertical * 2 - $input-height-base) / 2) - 1px;
margin-right: $header-padding-horizontal;
float: right;
color: $header-text;
#header & {
margin-top: floor(($header-title-line-height + $header-padding-vertical * 2 - $input-height-base) * .5) - 1px;
margin-right: $header-padding-horizontal;
float: right;
color: $header-text;
}
label {
font-weight: 500;
> * {
vertical-align: top;
}
form {
display: inline;
display: inline-block;
input {
width: $quick-search-width;
}
}
input,
select {
margin-left: 5px;
transition: color ease-in-out .1s,
background-color ease-in-out .1s,
border-color ease-in-out .1s;
border-color: darken($header-bg, 15%);
background: darken($header-bg, 10%);
color: $header-root;
> form > input,
> select {
border-color: $quick-search-border;
&:focus {
border-color: darken($header-bg, 35%);
background-color: $input-bg;
color: $input-color;
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .3);
border-color: $quick-search-border-focus;
}
}
@@ -216,30 +191,103 @@
color: $input-color;
&[disabled] {
color: $gray-lighter;
color: $gray-400;
}
}
}
#project-jump {
display: inline-block;
&.expanded {
.drdn-trigger {
z-index: 1003;
height: auto;
padding-bottom: $header-padding-horizontal * .5;
border-color: $quick-search-dropdown-bg;
background-color: $quick-search-dropdown-bg;
&::after {
content: $fa-var-caret-up;
}
}
}
input {
width: 200px;
.drdn {
&-trigger {
@extend %form-field;
@extend %fa-icon-after;
min-width: $quick-search-width;
border-color: $quick-search-border;
&::after {
content: $fa-var-caret-down;
position: absolute;
top: ($font-size-base * .5);
right: $input-padding-horizontal;
}
}
&-content {
min-width: $quick-search-box-width;
background: $quick-search-dropdown-bg;
> .quick-search {
padding: $header-padding-horizontal * .5;
> input {
width: 100%;
}
}
}
&-items {
border-top: 1px solid $quick-search-dropdown-border;
> a,
> span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
a {
color: $main-menu-link;
&:hover,
&:focus {
background-color: $component-active-bg;
color: $component-active-color;
text-decoration: none;
}
}
.all-projects a {
font-weight: $font-weight-bold;
}
}
#main-menu {
$tabs-height: $main-menu-padding-vertical * 2 + $line-height-computed;
clear: both;
background-color: $main-menu-bg;
color: $text-color;
box-shadow: inset 0 -1px $main-menu-border;
color: $text-color;
&.tabs {
margin-bottom: 0;
overflow: inherit;
> ul {
height: auto;
height: $tabs-height;
> li {
> a {
height: $tabs-height;
margin: 0;
border: 0 none;
border-radius: 0;
background: transparent;
@@ -252,29 +300,28 @@
@extend %clearfix;
margin: 0;
padding: 0 ($padding-side - $main-menu-padding-horizontal);
color: $main-menu-link;
list-style: none;
color: $main-menu-link;
> li {
position: relative;
margin-right: .5em;
float: left;
&:hover {
> .new-object {
border-bottom: 1px solid $main-menu-dropdown-bg;
z-index: 100;
border-bottom: 1px solid $main-menu-dropdown-bg;
}
> .menu-children {
display: block;
visibility: visible;
}
}
> a {
display: block;
padding: $main-menu-padding-vertical $main-menu-padding-horizontal;
transition: box-shadow .15s;
transition: box-shadow $transition-time-long;
color: $main-menu-link;
line-height: $line-height-computed;
white-space: nowrap;
@@ -286,30 +333,37 @@
&:hover,
&:focus {
outline: 0 none;
text-decoration: none;
background-color: $main-menu-bg-hover;
box-shadow: inset 0 (-$main-menu-shadow-width) 0 $main-menu-shadow-hover;
text-decoration: none;
}
&.selected {
padding-bottom: $main-menu-padding-vertical - $main-menu-shadow-width;
border-bottom: 3px solid $main-menu-shadow-active;
color: $main-menu-link-active;
font-weight: $font-weight-bold;
background-color: $main-menu-bg-active;
box-shadow: none;
color: $main-menu-link-active;
font-weight: $font-weight-semi-bold;
}
&.new-object {
position: relative;
min-width: 1.1em;
width: $tabs-height;
margin-right: $main-menu-padding-horizontal;
padding-bottom: $main-menu-padding-vertical - 1px;
border: 1px solid $main-menu-border;
border-width: 0 1px;
background-color: $main-menu-dropdown-bg;
color: $icon-success-color;
font-size: 2em;
font-weight: bold;
text-align: center;
font-size: 0;
&::before {
@include fa-icon;
content: $fa-var-plus;
font-size: $fa-font-size-base;
line-height: $line-height-computed;
text-align: center;
}
&:hover,
&:focus {
@@ -326,19 +380,21 @@
.menu-children {
@include nice-shadow(2);
display: none;
display: block;
visibility: hidden;
position: absolute;
z-index: 1001;
min-width: 130px;
margin: 0 1px;
padding: 0;
overflow: hidden;
list-style: none;
transition: visibility 0ms 50ms;
border-radius: 0 0 $border-radius-base $border-radius-base;
background: $main-menu-dropdown-bg;
list-style: none;
overflow: hidden;
z-index: 1001;
&.visible {
display: block;
visibility: visible;
}
a {
@@ -349,7 +405,6 @@
&:hover,
&:focus {
outline: 0 none;
background-color: $component-active-bg;
color: $component-active-color;
text-decoration: none;
@@ -362,17 +417,23 @@
}
.tabs-buttons {
display: none !important; // scss-lint:disable ImportantRule
display: none !important; // stylelint-disable-line declaration-no-important
padding-left: 0;
border-color: $main-menu-border;
background-color: $main-menu-bg;
> button {
height: $main-menu-padding-vertical * 2 + $line-height-computed - 1px;
box-sizing: border-box;
height: $tabs-height - 1px;
background-color: $main-menu-bg;
&:hover {
background-color: $main-menu-bg-hover;
}
}
}
ul + .tabs-buttons {
display: block !important; // scss-lint:disable ImportantRule
display: block !important; // stylelint-disable-line declaration-no-important
}
}

View File

@@ -3,13 +3,6 @@
font-size: $wiki-font-size;
@if $wiki-page-more-vertical-space {
// Anchors will make headers more separated,
// and it will look better when you open page with hash in URL
a[name]:empty {
display: block;
overflow: hidden;
}
// Add some space between list items
ul,
ol {
@@ -30,15 +23,18 @@
}
}
.controller-wiki .wiki > .preview {
font-size: $wiki-font-size;
.controller-wiki {
.wiki > .preview,
.wiki.wiki-preview {
font-size: $wiki-font-size;
}
}
div.wiki {
color: $wiki-text;
line-height: $wiki-line-height;
//scss-lint:disable SingleLinePerSelector
// stylelint-disable selector-list-comma-newline-after
h1, .h1,
h2, .h2,
h3, .h3,
@@ -53,14 +49,14 @@ div.wiki {
h1, .h1 {
padding-bottom: .3em;
border-bottom: 1px solid $gray-lighter;
border-bottom: 1px solid $gray-400;
font-size: $font-size-h1;
line-height: 1.2;
}
h2, .h2 {
padding-bottom: .3em;
border-bottom: 1px solid $gray-lighter;
border-bottom: 1px solid $gray-400;
font-size: $font-size-h2;
line-height: 1.225;
}
@@ -79,12 +75,12 @@ div.wiki {
}
h6, .h6 {
color: $gray;
color: $gray-700;
font-size: $font-size-h6;
}
.text-normal {
font-weight: normal;
font-weight: $font-weight-normal;
}
> a:first-child {
@@ -105,36 +101,38 @@ div.wiki {
+ h5,
+ h6 {
&::before {
content: "#";
display: inline-block;
width: .7em;
margin-left: -.7em;
color: $headings-anchor-color-active;
font-weight: normal;
content: "#";
font-weight: $font-weight-normal;
}
}
}
>:last-child {
> :last-child {
margin-bottom: 0;
}
blockquote {
>:first-child {
margin-bottom: 1em;
> :first-child {
margin-top: 0;
}
>:last-child {
> :last-child {
margin-bottom: 0;
}
}
.contextual {
a {
opacity: .4;
opacity: $icon-opacity;
&:hover {
opacity: 1;
opacity: $icon-hover-opacity;
}
}
}
@@ -161,7 +159,8 @@ div.wiki {
}
li > p {
margin-top: ($line-height-computed / 2);
margin-top: .25em;
margin-bottom: 0;
}
table {
@@ -173,7 +172,10 @@ div.wiki {
word-break: keep-all;
}
tr:nth-child(2n) {
// Textile
tbody:first-child tr:nth-child(2n),
// Markdown
thead + tbody tr:nth-child(2n-1) {
background-color: $table-bg-accent;
}
@@ -183,7 +185,8 @@ div.wiki {
border: 1px solid $table-border-color;
}
.noborder {
.noborder,
.wiki-class-noborder {
border: 0 none;
td,
@@ -199,20 +202,18 @@ div.wiki {
code {
padding: .2em .33em;
border-radius: $border-radius-base;
background-color: rgba(#000, .04);
background-color: rgba($gray-500, .3);
font-size: $font-size-small;
}
pre {
width: auto;
margin-bottom: 1.15em;
padding: 4px 8px;
border: 1px solid #e7e7e7;
border-radius: $border-radius-base;
border-color: rgba(#000, .068);
background-color: rgba(#000, .03);
padding: 12px 15px;
overflow-x: auto;
overflow-y: hidden;
border-radius: $border-radius-base;
background-color: rgba($gray-500, .15);
font-size: $font-size-small;
code {
@@ -229,30 +230,27 @@ div.wiki {
}
.toc {
display: table;
max-width: 45%;
margin-bottom: $line-height-computed;
margin-left: 0;
padding: 0;
padding: $padding-small-vertical $padding-small-horizontal;
list-style-type: none;
border: 1px solid $toc-border;
border-radius: $border-radius-base;
background-color: $toc-bg;
box-shadow: $toc-shadow;
color: $toc-text;
font-size: $font-size-small;
&.right,
&.left {
max-width: 45%;
padding: 8px;
border: 1px solid $highlight-border;
border-radius: $border-radius-base;
background-color: $highlight-bg;
font-size: $font-size-small;
box-shadow: $panel-shadow;
a {
color: $toc-link;
font-weight: $font-weight-normal;
text-decoration: none;
a {
color: $highlight-text;
font-weight: normal;
text-decoration: none;
&:hover {
color: darken($highlight-text, 10%);
text-decoration: underline;
}
&:hover {
color: $toc-link-hover;
text-decoration: underline;
}
}
@@ -279,12 +277,12 @@ div.wiki {
}
li {
// scss-lint:disable SelectorDepth
// stylelint-disable selector-max-compound-selectors
margin: 0;
li {
list-style-type: disc;
margin-left: 1.5em;
list-style-type: disc;
li {
list-style-type: circle;
@@ -320,12 +318,9 @@ h5,
h6 {
.wiki-anchor {
display: none;
position: relative;
top: -(1em - $font-size-small);
margin-left: 5px;
color: $headings-anchor-color !important; // scss-lint:disable ImportantRule
font-size: $font-size-small;
text-decoration: none !important; // scss-lint:disable ImportantRule
color: $headings-anchor-color !important; // stylelint-disable-line declaration-no-important
text-decoration: none !important; // stylelint-disable-line declaration-no-important
}
&:hover {
@@ -345,12 +340,12 @@ p.footnote {
margin-bottom: 5px;
&::before {
content: "";
display: block;
width: 300px;
margin-top: $line-height-computed;
padding-top: $line-height-computed / 2;
border-top: 1px solid $gray-lighter;
content: "";
margin-top: $line-height-computed;
padding-top: $line-height-computed * .5;
border-top: 1px solid $gray-400;
}
+ p.footnote::before {
@@ -358,31 +353,45 @@ p.footnote {
}
}
.ltr,
.wiki-class-ltr {
direction: ltr;
}
.rtl,
.wiki-class-rtl {
direction: rtl;
}
.preview {
margin-top: $line-height-computed;
padding: $padding-wiki;
background-color: #fffbe5;
background-image: url("../images/draft.png");
background-position: center center;
html[lang="pl"] & {
background-image: url("../images/draft-pl.png");
}
border: 1px solid $gray-400;
background-color: $body-bg;
}
#wiki_add_attachment {
padding-top: $line-height-computed;
border-top: 1px solid $gray-lighter;
border-top: 1px solid $gray-400;
> p {
margin-bottom: 0;
float: left;
}
#add_attachment_form {
> form {
padding-top: $line-height-computed;
clear: left;
}
.collapsible & {
padding-top: 0;
border-top: 0;
> form {
padding-top: 0;
}
}
}
@@ -399,7 +408,7 @@ p.footnote {
display: inline-block;
padding: $padding-base-vertical $padding-base-horizontal;
border: 1px solid $btn-default-border;
border-radius: ceil($font-size-base + ($padding-base-vertical + 1px) * 2) / 2;
border-radius: ceil($font-size-base + ($padding-base-vertical + 1px) * 2) * .5;
background-color: $body-bg;
line-height: 1;
white-space: nowrap;
@@ -465,7 +474,7 @@ p.footnote {
// Other helper classes
// see: http://getbootstrap.com/css/#helper-classes
.text-muted { color: $gray-light; }
.text-muted { color: $gray-600; }
.text-primary { color: $brand-primary; }
.text-success { color: $brand-success; }
.text-info { color: $brand-info; }

View File

@@ -0,0 +1,49 @@
// Extract the length of margin/padding/border
// for given side from a shorthand syntax.
//
// Examples:
// parse-length(1px, top) -> 1px
// parse-length(1px 2px, right) -> 2px
// parse-length(1px 2px 3px 4px, bottom) -> 3px
// parse-length(1px 2px 3px 4px, left) -> 4px
//
@function parse-length($value, $side) {
$index: 1;
// Top values are always at index 1. The same for when the list has only one item
@if ($side == top or length($value) == 1) {
$index: 1;
}
// Covers "vertical horizontal" style
@else if (length($value) == 2) {
@if ($side == left or $side == right) {
$index: 2;
}
@if ($side == bottom) {
$index: 1;
}
}
// Covers "top horizontal bottom" style
@else if (length($value) == 3) {
@if ($side == left or $side == right) {
$index: 2;
}
@if ($side == bottom) {
$index: 3;
}
}
// Covers "top right bottom left" style
@else if (length($value) == 4) {
@if ($side == right) {
$index: 2;
}
@if ($side == bottom) {
$index: 3;
}
@if ($side == left) {
$index: 4;
}
}
@return nth($value, $index);
}

View File

@@ -1,115 +1,93 @@
@if $enable-sidebar-toggler {
$toggler-position-v: 1px;
$toggler-position-h: 1px;
#main {
// Fix full screen view for dashboard plugin
// https://github.com/jgraichen/redmine_dashboard
@at-root .controller-rdb_taskboard & {
position: static;
}
}
#main {
position: relative;
#sidebar {
@if $fixed-layout {
will-change: margin, opacity;
transition: margin .5s, opacity .5s;
opacity: 1;
} @else {
will-change: margin;
transition: margin .5s;
}
#sidebar {
@if $fixed-layout {
will-change: margin, opacity;
transition: margin .5s, opacity .5s;
opacity: 1;
} @else {
will-change: margin;
transition: margin .5s;
}
&.sidebar-hiding {
@if $fixed-layout {
opacity: 0;
}
@if $sidebar-position == "left" {
margin-left: -$sidebar-width;
} @else {
margin-right: -$sidebar-width;
}
}
&.sidebar-hidden {
display: none;
}
&.sidebar-hiding {
@if $fixed-layout {
opacity: 0;
}
@if $sidebar-position == "left" {
margin-left: -$sidebar-width;
} @else {
margin-right: -$sidebar-width;
}
}
.sidebar-toggler {
display: block;
position: absolute;
top: $toggler-position-v;
user-select: none;
@if $use-font-awesome {
@extend %fa-icon;
color: $gray-light;
line-height: 1;
&::before {
margin-right: 0;
}
&:hover,
&:focus,
&:active {
color: $gray;
}
} @else {
width: 15px;
height: 15px;
border-radius: $border-radius-base;
background-repeat: no-repeat;
background-position: center center;
&:hover,
&:focus,
&:active {
background-color: $gray-lighter;
}
}
@if $sidebar-position == "left" {
left: $toggler-position-h;
@if $use-font-awesome {
&::before {
content: $fa-var-caret-square-o-left;
}
} @else {
@extend %image-arrow-left;
}
} @else {
right: $toggler-position-h;
@if $use-font-awesome {
&::before {
content: $fa-var-caret-square-o-right;
}
} @else {
@extend %image-arrow-right;
}
}
&.sidebar-hidden {
@if $sidebar-position == "left" {
@if $use-font-awesome {
&::before {
content: $fa-var-caret-square-o-right;
}
} @else {
@extend %image-arrow-right;
}
} @else {
@if $use-font-awesome {
&::before {
content: $fa-var-caret-square-o-left;
}
} @else {
@extend %image-arrow-left;
}
}
}
&.sidebar-hidden {
display: none;
}
}
.sidebar-toggler {
display: block;
position: absolute;
z-index: 2;
bottom: -1px;
width: 14px;
height: 16px;
transform: translateY(100%);
border: 2px solid $gray-700;
border-radius: $border-radius-base;
background-color: $gray-200;
background-position: center;
line-height: 1;
user-select: none;
@media print {
display: none;
}
&:hover,
&:focus,
&:active {
background-color: $gray-300;
}
@if $sidebar-position == "left" {
left: 0;
background-image: inline-svg("chevron-left.svg", (path: (fill: $gray-700)));
@if not $fixed-layout {
border-left: 0;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
} @else {
right: 0;
background-image: inline-svg("chevron-right.svg", (path: (fill: $gray-700)));
@if not $fixed-layout {
border-right: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
}
&.sidebar-hidden {
@if $sidebar-position == "left" {
background-image: inline-svg("chevron-right.svg", (path: (fill: $gray-700)));
} @else {
background-image: inline-svg("chevron-left.svg", (path: (fill: $gray-700)));
}
}
}
} @else {
.sidebar-toggler {
display: none;
}
.sidebar-toggler {
display: none;
}
}

View File

@@ -1,5 +1,5 @@
/**
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/

View File

@@ -1,162 +1,116 @@
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
//
// 1. Set default font family to sans-serif.
// 2. Prevent iOS text size adjust after orientation change, without disabling
// user zoom.
//
/* Document
========================================================================== */
html {
font-family: sans-serif; // 1
-ms-text-size-adjust: 100%; // 2
-webkit-text-size-adjust: 100%; // 2
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
//
// Remove default margin.
//
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
// HTML5 display definitions
// ==========================================================================
/**
* Render the `main` element consistently in IE.
*/
//
// Correct `block` display not defined for any HTML5 element in IE 8/9.
// Correct `block` display not defined for `details` or `summary` in IE 10/11
// and Firefox.
// Correct `block` display not defined for `main` in IE 11.
//
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
main {
display: block;
}
//
// 1. Correct `inline-block` display not defined in IE 8/9.
// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
//
/* Grouping content
========================================================================== */
audio,
canvas,
progress,
video {
display: inline-block; // 1
vertical-align: baseline; // 2
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
//
// Prevent modern browsers from displaying `audio` without controls.
// Remove excess height in iOS 5 devices.
//
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
audio:not([controls]) {
display: none;
height: 0;
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
//
// Address `[hidden]` styling not present in IE 8/9/10.
// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
//
/* Text-level semantics
========================================================================== */
[hidden],
template {
display: none;
}
// Links
// ==========================================================================
//
// Remove the gray background color from active links in IE 10.
//
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
//
// Improve readability when focused and also mouse hovered in all browsers.
//
a:active,
a:hover {
outline: 0;
}
// Text-level semantics
// ==========================================================================
//
// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
//
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: 1px dotted;
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
//
// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
//
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: $font-weight-bold;
}
//
// Address styling not present in Safari and Chrome.
//
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
dfn {
font-style: italic;
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
//
// Address variable `h1` font-size and margin within `section` and `article`
// contexts in Firefox 4+, Safari, and Chrome.
//
h1 {
font-size: 2em;
margin: 0.67em 0;
}
//
// Address styling not present in IE 8/9.
//
mark {
background: #ff0;
color: #000;
}
//
// Address inconsistent and variable font size in all browsers.
//
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
//
// Prevent `sub` and `sup` affecting `line-height` in all browsers.
//
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
@@ -166,262 +120,220 @@ sup {
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
// Embedded content
// ==========================================================================
sup {
top: -0.5em;
}
//
// Remove border when inside `a` element in IE 8/9/10.
//
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border: 0;
border-style: none;
}
//
// Correct overflow not hidden in IE 9/10/11.
//
/* Forms
========================================================================== */
svg:not(:root) {
overflow: hidden;
}
// Grouping content
// ==========================================================================
//
// Address margin not present in IE 8/9 and Safari.
//
figure {
margin: 1em 40px;
}
//
// Address differences between Firefox and other browsers.
//
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
//
// Contain overflow in all browsers.
//
pre {
overflow: auto;
}
//
// Address odd `em`-unit font size rendering in all browsers.
//
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
// Forms
// ==========================================================================
//
// Known limitation: by default, Chrome and Safari on OS X allow very limited
// styling of `select`, unless a `border` property is set.
//
//
// 1. Correct color not being inherited.
// Known issue: affects color of disabled elements.
// 2. Correct font properties not being inherited.
// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
//
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
color: inherit; // 1
font: inherit; // 2
margin: 0; // 3
font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
//
// Address `overflow` set to `hidden` in IE 8/9/10/11.
//
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button {
button,
input { /* 1 */
overflow: visible;
}
//
// Address inconsistent `text-transform` inheritance for `button` and `select`.
// All other form control elements do not inherit `text-transform` values.
// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
// Correct `select` style inheritance in Firefox.
//
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select {
select { /* 1 */
text-transform: none;
}
//
// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
// and `video` controls.
// 2. Correct inability to style clickable `input` types in iOS.
// 3. Improve usability and consistency of cursor style between image-type
// `input` and others.
//
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
html input[type="button"], // 1
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; // 2
cursor: pointer; // 3
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
//
// Re-set default cursor for disabled elements.
//
button[disabled],
html input[disabled] {
cursor: default;
}
//
// Remove inner padding and border in Firefox 4+.
//
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
//
// Address Firefox 4+ setting `line-height` on `input` using `!important` in
// the UA stylesheet.
//
/**
* Restore the focus styles unset by the previous rule.
*/
input {
line-height: normal;
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
//
// It's recommended that you don't attempt to style these elements.
// Firefox's implementation doesn't respect box-sizing, padding, or width.
//
// 1. Address box sizing set to `content-box` in IE 8/9/10.
// 2. Remove excess padding in IE 8/9/10.
//
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; // 1
padding: 0; // 2
}
//
// Fix the cursor style for Chrome's increment/decrement buttons. For certain
// `font-size` values of the `input`, it causes the cursor style of the
// decrement button to change from `default` to `text`.
//
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
//
// 1. Address `appearance` set to `searchfield` in Safari and Chrome.
// 2. Address `box-sizing` set to `border-box` in Safari and Chrome
// (include `-moz` to future-proof).
//
input[type="search"] {
-webkit-appearance: textfield; // 1
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; // 2
box-sizing: content-box;
}
//
// Remove inner padding and search cancel button in Safari and Chrome on OS X.
// Safari (but not Chrome) clips the cancel button when the search input has
// padding (and `textfield` appearance).
//
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
//
// Define consistent border, margin, and padding.
//
/**
* Correct the padding in Firefox.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
padding: 0.35em 0.75em 0.625em;
}
//
// 1. Correct `color` not being inherited in IE 8/9/10/11.
// 2. Remove padding so people aren't caught out if they zero out fieldsets.
//
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
border: 0; // 1
padding: 0; // 2
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
//
// Remove default vertical scrollbar in IE 8/9/10/11.
//
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
//
// Don't inherit the `font-weight` (applied by a rule above).
// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
//
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
optgroup {
font-weight: $font-weight-bold;
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
// Tables
// ==========================================================================
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
//
// Remove most spacing between table cells.
//
table {
border-collapse: collapse;
border-spacing: 0;
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
td,
th {
padding: 0;
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}

View File

@@ -5,9 +5,10 @@
font-family: "FontAwesome";
src: url("#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}");
src: url("#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}") format("embedded-opentype"),
url("#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}") format("woff"),
url("#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}") format("truetype"),
url("#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular") format("svg");
url("#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}") format("woff2"),
url("#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}") format("woff"),
url("#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}") format("truetype"),
url("#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular") format("svg");
font-weight: normal;
font-style: normal;
}

View File

@@ -1,20 +1,31 @@
@use "sass:math";
// Variables
// --------------------------
$fa-font-path: "../fonts" !default;
$fa-font-size-base: 14px !default;
$fa-line-height-base: 1 !default;
$fa-css-prefix: fa !default;
$fa-version: "4.2.0" !default;
$fa-version: "4.7.0" !default;
$fa-border-color: #eee !default;
$fa-inverse: #fff !default;
$fa-li-width: (30em / 14) !default;
$fa-li-width: math.div(30em, 14) !default;
$fa-var-500px: "\f26e";
$fa-var-address-book: "\f2b9";
$fa-var-address-book-o: "\f2ba";
$fa-var-address-card: "\f2bb";
$fa-var-address-card-o: "\f2bc";
$fa-var-adjust: "\f042";
$fa-var-adn: "\f170";
$fa-var-align-center: "\f037";
$fa-var-align-justify: "\f039";
$fa-var-align-left: "\f036";
$fa-var-align-right: "\f038";
$fa-var-amazon: "\f270";
$fa-var-ambulance: "\f0f9";
$fa-var-american-sign-language-interpreting: "\f2a3";
$fa-var-anchor: "\f13d";
$fa-var-android: "\f17b";
$fa-var-angellist: "\f209";
@@ -45,16 +56,35 @@ $fa-var-arrows: "\f047";
$fa-var-arrows-alt: "\f0b2";
$fa-var-arrows-h: "\f07e";
$fa-var-arrows-v: "\f07d";
$fa-var-asl-interpreting: "\f2a3";
$fa-var-assistive-listening-systems: "\f2a2";
$fa-var-asterisk: "\f069";
$fa-var-at: "\f1fa";
$fa-var-audio-description: "\f29e";
$fa-var-automobile: "\f1b9";
$fa-var-backward: "\f04a";
$fa-var-balance-scale: "\f24e";
$fa-var-ban: "\f05e";
$fa-var-bandcamp: "\f2d5";
$fa-var-bank: "\f19c";
$fa-var-bar-chart: "\f080";
$fa-var-bar-chart-o: "\f080";
$fa-var-barcode: "\f02a";
$fa-var-bars: "\f0c9";
$fa-var-bath: "\f2cd";
$fa-var-bathtub: "\f2cd";
$fa-var-battery: "\f240";
$fa-var-battery-0: "\f244";
$fa-var-battery-1: "\f243";
$fa-var-battery-2: "\f242";
$fa-var-battery-3: "\f241";
$fa-var-battery-4: "\f240";
$fa-var-battery-empty: "\f244";
$fa-var-battery-full: "\f240";
$fa-var-battery-half: "\f242";
$fa-var-battery-quarter: "\f243";
$fa-var-battery-three-quarters: "\f241";
$fa-var-bed: "\f236";
$fa-var-beer: "\f0fc";
$fa-var-behance: "\f1b4";
$fa-var-behance-square: "\f1b5";
@@ -68,12 +98,17 @@ $fa-var-birthday-cake: "\f1fd";
$fa-var-bitbucket: "\f171";
$fa-var-bitbucket-square: "\f172";
$fa-var-bitcoin: "\f15a";
$fa-var-black-tie: "\f27e";
$fa-var-blind: "\f29d";
$fa-var-bluetooth: "\f293";
$fa-var-bluetooth-b: "\f294";
$fa-var-bold: "\f032";
$fa-var-bolt: "\f0e7";
$fa-var-bomb: "\f1e2";
$fa-var-book: "\f02d";
$fa-var-bookmark: "\f02e";
$fa-var-bookmark-o: "\f097";
$fa-var-braille: "\f2a1";
$fa-var-briefcase: "\f0b1";
$fa-var-btc: "\f15a";
$fa-var-bug: "\f188";
@@ -82,10 +117,15 @@ $fa-var-building-o: "\f0f7";
$fa-var-bullhorn: "\f0a1";
$fa-var-bullseye: "\f140";
$fa-var-bus: "\f207";
$fa-var-buysellads: "\f20d";
$fa-var-cab: "\f1ba";
$fa-var-calculator: "\f1ec";
$fa-var-calendar: "\f073";
$fa-var-calendar-check-o: "\f274";
$fa-var-calendar-minus-o: "\f272";
$fa-var-calendar-o: "\f133";
$fa-var-calendar-plus-o: "\f271";
$fa-var-calendar-times-o: "\f273";
$fa-var-camera: "\f030";
$fa-var-camera-retro: "\f083";
$fa-var-car: "\f1b9";
@@ -97,9 +137,13 @@ $fa-var-caret-square-o-left: "\f191";
$fa-var-caret-square-o-right: "\f152";
$fa-var-caret-square-o-up: "\f151";
$fa-var-caret-up: "\f0d8";
$fa-var-cart-arrow-down: "\f218";
$fa-var-cart-plus: "\f217";
$fa-var-cc: "\f20a";
$fa-var-cc-amex: "\f1f3";
$fa-var-cc-diners-club: "\f24c";
$fa-var-cc-discover: "\f1f2";
$fa-var-cc-jcb: "\f24b";
$fa-var-cc-mastercard: "\f1f1";
$fa-var-cc-paypal: "\f1f4";
$fa-var-cc-stripe: "\f1f5";
@@ -121,12 +165,14 @@ $fa-var-chevron-left: "\f053";
$fa-var-chevron-right: "\f054";
$fa-var-chevron-up: "\f077";
$fa-var-child: "\f1ae";
$fa-var-chrome: "\f268";
$fa-var-circle: "\f111";
$fa-var-circle-o: "\f10c";
$fa-var-circle-o-notch: "\f1ce";
$fa-var-circle-thin: "\f1db";
$fa-var-clipboard: "\f0ea";
$fa-var-clock-o: "\f017";
$fa-var-clone: "\f24d";
$fa-var-close: "\f00d";
$fa-var-cloud: "\f0c2";
$fa-var-cloud-download: "\f0ed";
@@ -135,19 +181,26 @@ $fa-var-cny: "\f157";
$fa-var-code: "\f121";
$fa-var-code-fork: "\f126";
$fa-var-codepen: "\f1cb";
$fa-var-codiepie: "\f284";
$fa-var-coffee: "\f0f4";
$fa-var-cog: "\f013";
$fa-var-cogs: "\f085";
$fa-var-columns: "\f0db";
$fa-var-comment: "\f075";
$fa-var-comment-o: "\f0e5";
$fa-var-commenting: "\f27a";
$fa-var-commenting-o: "\f27b";
$fa-var-comments: "\f086";
$fa-var-comments-o: "\f0e6";
$fa-var-compass: "\f14e";
$fa-var-compress: "\f066";
$fa-var-connectdevelop: "\f20e";
$fa-var-contao: "\f26d";
$fa-var-copy: "\f0c5";
$fa-var-copyright: "\f1f9";
$fa-var-creative-commons: "\f25e";
$fa-var-credit-card: "\f09d";
$fa-var-credit-card-alt: "\f283";
$fa-var-crop: "\f125";
$fa-var-crosshairs: "\f05b";
$fa-var-css3: "\f13c";
@@ -156,27 +209,39 @@ $fa-var-cubes: "\f1b3";
$fa-var-cut: "\f0c4";
$fa-var-cutlery: "\f0f5";
$fa-var-dashboard: "\f0e4";
$fa-var-dashcube: "\f210";
$fa-var-database: "\f1c0";
$fa-var-deaf: "\f2a4";
$fa-var-deafness: "\f2a4";
$fa-var-dedent: "\f03b";
$fa-var-delicious: "\f1a5";
$fa-var-desktop: "\f108";
$fa-var-deviantart: "\f1bd";
$fa-var-diamond: "\f219";
$fa-var-digg: "\f1a6";
$fa-var-dollar: "\f155";
$fa-var-dot-circle-o: "\f192";
$fa-var-download: "\f019";
$fa-var-dribbble: "\f17d";
$fa-var-drivers-license: "\f2c2";
$fa-var-drivers-license-o: "\f2c3";
$fa-var-dropbox: "\f16b";
$fa-var-drupal: "\f1a9";
$fa-var-edge: "\f282";
$fa-var-edit: "\f044";
$fa-var-eercast: "\f2da";
$fa-var-eject: "\f052";
$fa-var-ellipsis-h: "\f141";
$fa-var-ellipsis-v: "\f142";
$fa-var-empire: "\f1d1";
$fa-var-envelope: "\f0e0";
$fa-var-envelope-o: "\f003";
$fa-var-envelope-open: "\f2b6";
$fa-var-envelope-open-o: "\f2b7";
$fa-var-envelope-square: "\f199";
$fa-var-envira: "\f299";
$fa-var-eraser: "\f12d";
$fa-var-etsy: "\f2d7";
$fa-var-eur: "\f153";
$fa-var-euro: "\f153";
$fa-var-exchange: "\f0ec";
@@ -184,16 +249,21 @@ $fa-var-exclamation: "\f12a";
$fa-var-exclamation-circle: "\f06a";
$fa-var-exclamation-triangle: "\f071";
$fa-var-expand: "\f065";
$fa-var-expeditedssl: "\f23e";
$fa-var-external-link: "\f08e";
$fa-var-external-link-square: "\f14c";
$fa-var-eye: "\f06e";
$fa-var-eye-slash: "\f070";
$fa-var-eyedropper: "\f1fb";
$fa-var-fa: "\f2b4";
$fa-var-facebook: "\f09a";
$fa-var-facebook-f: "\f09a";
$fa-var-facebook-official: "\f230";
$fa-var-facebook-square: "\f082";
$fa-var-fast-backward: "\f049";
$fa-var-fast-forward: "\f050";
$fa-var-fax: "\f1ac";
$fa-var-feed: "\f09e";
$fa-var-female: "\f182";
$fa-var-fighter-jet: "\f0fb";
$fa-var-file: "\f15b";
@@ -219,6 +289,8 @@ $fa-var-film: "\f008";
$fa-var-filter: "\f0b0";
$fa-var-fire: "\f06d";
$fa-var-fire-extinguisher: "\f134";
$fa-var-firefox: "\f269";
$fa-var-first-order: "\f2b0";
$fa-var-flag: "\f024";
$fa-var-flag-checkered: "\f11e";
$fa-var-flag-o: "\f11d";
@@ -231,8 +303,13 @@ $fa-var-folder-o: "\f114";
$fa-var-folder-open: "\f07c";
$fa-var-folder-open-o: "\f115";
$fa-var-font: "\f031";
$fa-var-font-awesome: "\f2b4";
$fa-var-fonticons: "\f280";
$fa-var-fort-awesome: "\f286";
$fa-var-forumbee: "\f211";
$fa-var-forward: "\f04e";
$fa-var-foursquare: "\f180";
$fa-var-free-code-camp: "\f2c5";
$fa-var-frown-o: "\f119";
$fa-var-futbol-o: "\f1e3";
$fa-var-gamepad: "\f11b";
@@ -241,45 +318,87 @@ $fa-var-gbp: "\f154";
$fa-var-ge: "\f1d1";
$fa-var-gear: "\f013";
$fa-var-gears: "\f085";
$fa-var-genderless: "\f22d";
$fa-var-get-pocket: "\f265";
$fa-var-gg: "\f260";
$fa-var-gg-circle: "\f261";
$fa-var-gift: "\f06b";
$fa-var-git: "\f1d3";
$fa-var-git-square: "\f1d2";
$fa-var-github: "\f09b";
$fa-var-github-alt: "\f113";
$fa-var-github-square: "\f092";
$fa-var-gitlab: "\f296";
$fa-var-gittip: "\f184";
$fa-var-glass: "\f000";
$fa-var-glide: "\f2a5";
$fa-var-glide-g: "\f2a6";
$fa-var-globe: "\f0ac";
$fa-var-google: "\f1a0";
$fa-var-google-plus: "\f0d5";
$fa-var-google-plus-circle: "\f2b3";
$fa-var-google-plus-official: "\f2b3";
$fa-var-google-plus-square: "\f0d4";
$fa-var-google-wallet: "\f1ee";
$fa-var-graduation-cap: "\f19d";
$fa-var-gratipay: "\f184";
$fa-var-grav: "\f2d6";
$fa-var-group: "\f0c0";
$fa-var-h-square: "\f0fd";
$fa-var-hacker-news: "\f1d4";
$fa-var-hand-grab-o: "\f255";
$fa-var-hand-lizard-o: "\f258";
$fa-var-hand-o-down: "\f0a7";
$fa-var-hand-o-left: "\f0a5";
$fa-var-hand-o-right: "\f0a4";
$fa-var-hand-o-up: "\f0a6";
$fa-var-hand-paper-o: "\f256";
$fa-var-hand-peace-o: "\f25b";
$fa-var-hand-pointer-o: "\f25a";
$fa-var-hand-rock-o: "\f255";
$fa-var-hand-scissors-o: "\f257";
$fa-var-hand-spock-o: "\f259";
$fa-var-hand-stop-o: "\f256";
$fa-var-handshake-o: "\f2b5";
$fa-var-hard-of-hearing: "\f2a4";
$fa-var-hashtag: "\f292";
$fa-var-hdd-o: "\f0a0";
$fa-var-header: "\f1dc";
$fa-var-headphones: "\f025";
$fa-var-heart: "\f004";
$fa-var-heart-o: "\f08a";
$fa-var-heartbeat: "\f21e";
$fa-var-history: "\f1da";
$fa-var-home: "\f015";
$fa-var-hospital-o: "\f0f8";
$fa-var-hotel: "\f236";
$fa-var-hourglass: "\f254";
$fa-var-hourglass-1: "\f251";
$fa-var-hourglass-2: "\f252";
$fa-var-hourglass-3: "\f253";
$fa-var-hourglass-end: "\f253";
$fa-var-hourglass-half: "\f252";
$fa-var-hourglass-o: "\f250";
$fa-var-hourglass-start: "\f251";
$fa-var-houzz: "\f27c";
$fa-var-html5: "\f13b";
$fa-var-i-cursor: "\f246";
$fa-var-id-badge: "\f2c1";
$fa-var-id-card: "\f2c2";
$fa-var-id-card-o: "\f2c3";
$fa-var-ils: "\f20b";
$fa-var-image: "\f03e";
$fa-var-imdb: "\f2d8";
$fa-var-inbox: "\f01c";
$fa-var-indent: "\f03c";
$fa-var-industry: "\f275";
$fa-var-info: "\f129";
$fa-var-info-circle: "\f05a";
$fa-var-inr: "\f156";
$fa-var-instagram: "\f16d";
$fa-var-institution: "\f19c";
$fa-var-internet-explorer: "\f26b";
$fa-var-intersex: "\f224";
$fa-var-ioxhost: "\f208";
$fa-var-italic: "\f033";
$fa-var-joomla: "\f1aa";
@@ -293,6 +412,7 @@ $fa-var-laptop: "\f109";
$fa-var-lastfm: "\f202";
$fa-var-lastfm-square: "\f203";
$fa-var-leaf: "\f06c";
$fa-var-leanpub: "\f212";
$fa-var-legal: "\f0e3";
$fa-var-lemon-o: "\f094";
$fa-var-level-down: "\f149";
@@ -306,6 +426,7 @@ $fa-var-line-chart: "\f201";
$fa-var-link: "\f0c1";
$fa-var-linkedin: "\f0e1";
$fa-var-linkedin-square: "\f08c";
$fa-var-linode: "\f2b8";
$fa-var-linux: "\f17c";
$fa-var-list: "\f03a";
$fa-var-list-alt: "\f022";
@@ -317,32 +438,58 @@ $fa-var-long-arrow-down: "\f175";
$fa-var-long-arrow-left: "\f177";
$fa-var-long-arrow-right: "\f178";
$fa-var-long-arrow-up: "\f176";
$fa-var-low-vision: "\f2a8";
$fa-var-magic: "\f0d0";
$fa-var-magnet: "\f076";
$fa-var-mail-forward: "\f064";
$fa-var-mail-reply: "\f112";
$fa-var-mail-reply-all: "\f122";
$fa-var-male: "\f183";
$fa-var-map: "\f279";
$fa-var-map-marker: "\f041";
$fa-var-map-o: "\f278";
$fa-var-map-pin: "\f276";
$fa-var-map-signs: "\f277";
$fa-var-mars: "\f222";
$fa-var-mars-double: "\f227";
$fa-var-mars-stroke: "\f229";
$fa-var-mars-stroke-h: "\f22b";
$fa-var-mars-stroke-v: "\f22a";
$fa-var-maxcdn: "\f136";
$fa-var-meanpath: "\f20c";
$fa-var-medium: "\f23a";
$fa-var-medkit: "\f0fa";
$fa-var-meetup: "\f2e0";
$fa-var-meh-o: "\f11a";
$fa-var-mercury: "\f223";
$fa-var-microchip: "\f2db";
$fa-var-microphone: "\f130";
$fa-var-microphone-slash: "\f131";
$fa-var-minus: "\f068";
$fa-var-minus-circle: "\f056";
$fa-var-minus-square: "\f146";
$fa-var-minus-square-o: "\f147";
$fa-var-mixcloud: "\f289";
$fa-var-mobile: "\f10b";
$fa-var-mobile-phone: "\f10b";
$fa-var-modx: "\f285";
$fa-var-money: "\f0d6";
$fa-var-moon-o: "\f186";
$fa-var-mortar-board: "\f19d";
$fa-var-motorcycle: "\f21c";
$fa-var-mouse-pointer: "\f245";
$fa-var-music: "\f001";
$fa-var-navicon: "\f0c9";
$fa-var-neuter: "\f22c";
$fa-var-newspaper-o: "\f1ea";
$fa-var-object-group: "\f247";
$fa-var-object-ungroup: "\f248";
$fa-var-odnoklassniki: "\f263";
$fa-var-odnoklassniki-square: "\f264";
$fa-var-opencart: "\f23d";
$fa-var-openid: "\f19b";
$fa-var-opera: "\f26a";
$fa-var-optin-monster: "\f23c";
$fa-var-outdent: "\f03b";
$fa-var-pagelines: "\f18c";
$fa-var-paint-brush: "\f1fc";
@@ -352,19 +499,24 @@ $fa-var-paperclip: "\f0c6";
$fa-var-paragraph: "\f1dd";
$fa-var-paste: "\f0ea";
$fa-var-pause: "\f04c";
$fa-var-pause-circle: "\f28b";
$fa-var-pause-circle-o: "\f28c";
$fa-var-paw: "\f1b0";
$fa-var-paypal: "\f1ed";
$fa-var-pencil: "\f040";
$fa-var-pencil-square: "\f14b";
$fa-var-pencil-square-o: "\f044";
$fa-var-percent: "\f295";
$fa-var-phone: "\f095";
$fa-var-phone-square: "\f098";
$fa-var-photo: "\f03e";
$fa-var-picture-o: "\f03e";
$fa-var-pie-chart: "\f200";
$fa-var-pied-piper: "\f1a7";
$fa-var-pied-piper: "\f2ae";
$fa-var-pied-piper-alt: "\f1a8";
$fa-var-pied-piper-pp: "\f1a7";
$fa-var-pinterest: "\f0d2";
$fa-var-pinterest-p: "\f231";
$fa-var-pinterest-square: "\f0d3";
$fa-var-plane: "\f072";
$fa-var-play: "\f04b";
@@ -375,28 +527,36 @@ $fa-var-plus: "\f067";
$fa-var-plus-circle: "\f055";
$fa-var-plus-square: "\f0fe";
$fa-var-plus-square-o: "\f196";
$fa-var-podcast: "\f2ce";
$fa-var-power-off: "\f011";
$fa-var-print: "\f02f";
$fa-var-product-hunt: "\f288";
$fa-var-puzzle-piece: "\f12e";
$fa-var-qq: "\f1d6";
$fa-var-qrcode: "\f029";
$fa-var-question: "\f128";
$fa-var-question-circle: "\f059";
$fa-var-question-circle-o: "\f29c";
$fa-var-quora: "\f2c4";
$fa-var-quote-left: "\f10d";
$fa-var-quote-right: "\f10e";
$fa-var-ra: "\f1d0";
$fa-var-random: "\f074";
$fa-var-ravelry: "\f2d9";
$fa-var-rebel: "\f1d0";
$fa-var-recycle: "\f1b8";
$fa-var-reddit: "\f1a1";
$fa-var-reddit-alien: "\f281";
$fa-var-reddit-square: "\f1a2";
$fa-var-refresh: "\f021";
$fa-var-registered: "\f25d";
$fa-var-remove: "\f00d";
$fa-var-renren: "\f18b";
$fa-var-reorder: "\f0c9";
$fa-var-repeat: "\f01e";
$fa-var-reply: "\f112";
$fa-var-reply-all: "\f122";
$fa-var-resistance: "\f1d0";
$fa-var-retweet: "\f079";
$fa-var-rmb: "\f157";
$fa-var-road: "\f018";
@@ -409,13 +569,18 @@ $fa-var-rss-square: "\f143";
$fa-var-rub: "\f158";
$fa-var-ruble: "\f158";
$fa-var-rupee: "\f156";
$fa-var-s15: "\f2cd";
$fa-var-safari: "\f267";
$fa-var-save: "\f0c7";
$fa-var-scissors: "\f0c4";
$fa-var-scribd: "\f28a";
$fa-var-search: "\f002";
$fa-var-search-minus: "\f010";
$fa-var-search-plus: "\f00e";
$fa-var-sellsy: "\f213";
$fa-var-send: "\f1d8";
$fa-var-send-o: "\f1d9";
$fa-var-server: "\f233";
$fa-var-share: "\f064";
$fa-var-share-alt: "\f1e0";
$fa-var-share-alt-square: "\f1e1";
@@ -424,16 +589,29 @@ $fa-var-share-square-o: "\f045";
$fa-var-shekel: "\f20b";
$fa-var-sheqel: "\f20b";
$fa-var-shield: "\f132";
$fa-var-ship: "\f21a";
$fa-var-shirtsinbulk: "\f214";
$fa-var-shopping-bag: "\f290";
$fa-var-shopping-basket: "\f291";
$fa-var-shopping-cart: "\f07a";
$fa-var-shower: "\f2cc";
$fa-var-sign-in: "\f090";
$fa-var-sign-language: "\f2a7";
$fa-var-sign-out: "\f08b";
$fa-var-signal: "\f012";
$fa-var-signing: "\f2a7";
$fa-var-simplybuilt: "\f215";
$fa-var-sitemap: "\f0e8";
$fa-var-skyatlas: "\f216";
$fa-var-skype: "\f17e";
$fa-var-slack: "\f198";
$fa-var-sliders: "\f1de";
$fa-var-slideshare: "\f1e7";
$fa-var-smile-o: "\f118";
$fa-var-snapchat: "\f2ab";
$fa-var-snapchat-ghost: "\f2ac";
$fa-var-snapchat-square: "\f2ad";
$fa-var-snowflake-o: "\f2dc";
$fa-var-soccer-ball-o: "\f1e3";
$fa-var-sort: "\f0dc";
$fa-var-sort-alpha-asc: "\f15d";
@@ -466,13 +644,20 @@ $fa-var-steam-square: "\f1b7";
$fa-var-step-backward: "\f048";
$fa-var-step-forward: "\f051";
$fa-var-stethoscope: "\f0f1";
$fa-var-sticky-note: "\f249";
$fa-var-sticky-note-o: "\f24a";
$fa-var-stop: "\f04d";
$fa-var-stop-circle: "\f28d";
$fa-var-stop-circle-o: "\f28e";
$fa-var-street-view: "\f21d";
$fa-var-strikethrough: "\f0cc";
$fa-var-stumbleupon: "\f1a4";
$fa-var-stumbleupon-circle: "\f1a3";
$fa-var-subscript: "\f12c";
$fa-var-subway: "\f239";
$fa-var-suitcase: "\f0f2";
$fa-var-sun-o: "\f185";
$fa-var-superpowers: "\f2dd";
$fa-var-superscript: "\f12b";
$fa-var-support: "\f1cd";
$fa-var-table: "\f0ce";
@@ -482,6 +667,8 @@ $fa-var-tag: "\f02b";
$fa-var-tags: "\f02c";
$fa-var-tasks: "\f0ae";
$fa-var-taxi: "\f1ba";
$fa-var-telegram: "\f2c6";
$fa-var-television: "\f26c";
$fa-var-tencent-weibo: "\f1d5";
$fa-var-terminal: "\f120";
$fa-var-text-height: "\f034";
@@ -489,6 +676,18 @@ $fa-var-text-width: "\f035";
$fa-var-th: "\f00a";
$fa-var-th-large: "\f009";
$fa-var-th-list: "\f00b";
$fa-var-themeisle: "\f2b2";
$fa-var-thermometer: "\f2c7";
$fa-var-thermometer-0: "\f2cb";
$fa-var-thermometer-1: "\f2ca";
$fa-var-thermometer-2: "\f2c9";
$fa-var-thermometer-3: "\f2c8";
$fa-var-thermometer-4: "\f2c7";
$fa-var-thermometer-empty: "\f2cb";
$fa-var-thermometer-full: "\f2c7";
$fa-var-thermometer-half: "\f2c9";
$fa-var-thermometer-quarter: "\f2ca";
$fa-var-thermometer-three-quarters: "\f2c8";
$fa-var-thumb-tack: "\f08d";
$fa-var-thumbs-down: "\f165";
$fa-var-thumbs-o-down: "\f088";
@@ -498,6 +697,8 @@ $fa-var-ticket: "\f145";
$fa-var-times: "\f00d";
$fa-var-times-circle: "\f057";
$fa-var-times-circle-o: "\f05c";
$fa-var-times-rectangle: "\f2d3";
$fa-var-times-rectangle-o: "\f2d4";
$fa-var-tint: "\f043";
$fa-var-toggle-down: "\f150";
$fa-var-toggle-left: "\f191";
@@ -505,10 +706,15 @@ $fa-var-toggle-off: "\f204";
$fa-var-toggle-on: "\f205";
$fa-var-toggle-right: "\f152";
$fa-var-toggle-up: "\f151";
$fa-var-trademark: "\f25c";
$fa-var-train: "\f238";
$fa-var-transgender: "\f224";
$fa-var-transgender-alt: "\f225";
$fa-var-trash: "\f1f8";
$fa-var-trash-o: "\f014";
$fa-var-tree: "\f1bb";
$fa-var-trello: "\f181";
$fa-var-tripadvisor: "\f262";
$fa-var-trophy: "\f091";
$fa-var-truck: "\f0d1";
$fa-var-try: "\f195";
@@ -516,26 +722,45 @@ $fa-var-tty: "\f1e4";
$fa-var-tumblr: "\f173";
$fa-var-tumblr-square: "\f174";
$fa-var-turkish-lira: "\f195";
$fa-var-tv: "\f26c";
$fa-var-twitch: "\f1e8";
$fa-var-twitter: "\f099";
$fa-var-twitter-square: "\f081";
$fa-var-umbrella: "\f0e9";
$fa-var-underline: "\f0cd";
$fa-var-undo: "\f0e2";
$fa-var-universal-access: "\f29a";
$fa-var-university: "\f19c";
$fa-var-unlink: "\f127";
$fa-var-unlock: "\f09c";
$fa-var-unlock-alt: "\f13e";
$fa-var-unsorted: "\f0dc";
$fa-var-upload: "\f093";
$fa-var-usb: "\f287";
$fa-var-usd: "\f155";
$fa-var-user: "\f007";
$fa-var-user-circle: "\f2bd";
$fa-var-user-circle-o: "\f2be";
$fa-var-user-md: "\f0f0";
$fa-var-user-o: "\f2c0";
$fa-var-user-plus: "\f234";
$fa-var-user-secret: "\f21b";
$fa-var-user-times: "\f235";
$fa-var-users: "\f0c0";
$fa-var-vcard: "\f2bb";
$fa-var-vcard-o: "\f2bc";
$fa-var-venus: "\f221";
$fa-var-venus-double: "\f226";
$fa-var-venus-mars: "\f228";
$fa-var-viacoin: "\f237";
$fa-var-viadeo: "\f2a9";
$fa-var-viadeo-square: "\f2aa";
$fa-var-video-camera: "\f03d";
$fa-var-vimeo: "\f27d";
$fa-var-vimeo-square: "\f194";
$fa-var-vine: "\f1ca";
$fa-var-vk: "\f189";
$fa-var-volume-control-phone: "\f2a0";
$fa-var-volume-down: "\f027";
$fa-var-volume-off: "\f026";
$fa-var-volume-up: "\f028";
@@ -543,17 +768,34 @@ $fa-var-warning: "\f071";
$fa-var-wechat: "\f1d7";
$fa-var-weibo: "\f18a";
$fa-var-weixin: "\f1d7";
$fa-var-whatsapp: "\f232";
$fa-var-wheelchair: "\f193";
$fa-var-wheelchair-alt: "\f29b";
$fa-var-wifi: "\f1eb";
$fa-var-wikipedia-w: "\f266";
$fa-var-window-close: "\f2d3";
$fa-var-window-close-o: "\f2d4";
$fa-var-window-maximize: "\f2d0";
$fa-var-window-minimize: "\f2d1";
$fa-var-window-restore: "\f2d2";
$fa-var-windows: "\f17a";
$fa-var-won: "\f159";
$fa-var-wordpress: "\f19a";
$fa-var-wpbeginner: "\f297";
$fa-var-wpexplorer: "\f2de";
$fa-var-wpforms: "\f298";
$fa-var-wrench: "\f0ad";
$fa-var-xing: "\f168";
$fa-var-xing-square: "\f169";
$fa-var-y-combinator: "\f23b";
$fa-var-y-combinator-square: "\f1d4";
$fa-var-yahoo: "\f19e";
$fa-var-yc: "\f23b";
$fa-var-yc-square: "\f1d4";
$fa-var-yelp: "\f1e9";
$fa-var-yen: "\f157";
$fa-var-yoast: "\f2b1";
$fa-var-youtube: "\f167";
$fa-var-youtube-play: "\f16a";
$fa-var-youtube-square: "\f166";

View File

@@ -1,9 +1,9 @@
// Button sizes
@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
padding: $padding-vertical $padding-horizontal;
border-radius: $border-radius;
font-size: $font-size;
line-height: $line-height;
border-radius: $border-radius;
}
@mixin button-variant($color, $bg, $border) {

View File

@@ -2,6 +2,6 @@
@mixin center-block() {
display: block;
margin-left: auto;
margin-right: auto;
margin-left: auto;
}

View File

@@ -4,9 +4,9 @@
@mixin clearfix() {
&::after {
content: "";
display: block;
clear: both;
content: "";
}
}

View File

@@ -2,9 +2,9 @@
//
@mixin form-control-focus($color: $input-border-focus) {
&:focus {
border-color: $color;
border-color: rgba($input-border-focus, $input-border-focus-alpha);
outline: 0;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 5px rgba($color, .5);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 0 2px rgba($input-border-focus, $input-shadow-focus-alpha);
}
}
@@ -12,8 +12,8 @@
//
@mixin placeholder($color: $input-color-placeholder) {
&::placeholder {
color: $color;
opacity: 1; // See https://github.com/twbs/bootstrap/pull/11526
color: $color;
}
}
@@ -40,13 +40,39 @@
}
}
@mixin checkbox() {
@mixin check() {
@extend %clearfix;
padding-left: 20px;
user-select: none;
position: relative;
padding-left: $check-input-gutter;
font-weight: $font-weight-normal;
line-height: $line-height-base;
text-align: left;
input[type="checkbox"] {
margin-left: -20px;
float: left;
input[type="checkbox"],
input[type="radio"] {
position: absolute;
width: auto;
margin-top: $check-input-margin-vertical;
margin-left: -$check-input-gutter;
}
}
@mixin check-inline() {
@include check;
display: inline-block;
margin-right: $check-input-margin-horizontal;
}
@mixin check-list() {
@include check;
display: block;
width: auto;
margin: 0;
padding-top: $check-list-offset-top;
padding-bottom: $check-list-offset-top;
float: none;
@media screen and (min-width: $screen-sm-min) {
padding-bottom: 0;
}
}

View File

@@ -3,12 +3,12 @@
@mixin img-retina($file-2x, $width-1x, $height-1x) {
@media
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min--moz-device-pixel-ratio: 2),
only screen and (-o-min-device-pixel-ratio: 2/1),
only screen and (min-device-pixel-ratio: 2),
only screen and (min-resolution: 192dpi),
only screen and (min-resolution: 2dppx) {
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min--moz-device-pixel-ratio: 2),
only screen and (-o-min-device-pixel-ratio: 2 / 1),
only screen and (min-device-pixel-ratio: 2),
only screen and (min-resolution: 192dpi),
only screen and (min-resolution: 2dppx) {
background-image: url("#{$file-2x}");
background-size: $width-1x $height-1x;
}

View File

@@ -1,130 +1,23 @@
// Priority highlight
// Priority icon
@mixin priority($parent, $background, $color, $link) {
@if lightness($background) < 85% {
$background: lighten($background, 6%);
@mixin priority-icon-base() {
&::before {
content: "\00a0";
display: inline-block;
width: $priority-icon-size;
margin-right: $priority-icon-space;
background-repeat: no-repeat;
background-position: center center;
background-size: $priority-icon-size;
}
}
$border-color: darken(desaturate($background, 30%), 13.5%);
tr#{$parent} {
background: $background;
@if ".priority-default" == $parent {
color: $color;
} @else {
color: darken($color, 10%);
}
@if $table-list-color-odd-rows {
&.odd {
background: darken($background, $table-accent-factor * 100%);
}
}
@if $table-list-color-even-rows {
&.even {
background: darken($background, $table-accent-factor * 100%);
}
}
td {
border-color: $border-color;
}
a {
color: $link;
&:hover {
color: darken($link, 10%);
}
}
}
@if $table-list-highlight-rows {
table.list > tbody > tr#{$parent}:hover {
background: darken($background, $table-hover-factor * 100%);
}
@if $table-list-color-odd-rows {
&.odd {
background: darken($background, ($table-accent-factor + $table-hover-factor) * 100%);
}
}
@if $table-list-color-even-rows {
&.even {
background: darken($background, ($table-accent-factor + $table-hover-factor) * 100%);
}
}
}
@if $colored-issue {
.issue.details#{$parent} {
color: $color;
@if ".priority-default" == $parent {
$border-color: $issue-border;
background: $issue-bg;
} @else {
background: $background;
}
&,
hr {
border-color: $border-color;
}
a {
color: $link;
&:hover {
color: darken($link, 10%);
}
}
.next-prev-links {
color: mix($color, $gray-light, 25%);
}
> .description > .wiki {
border-top-color: $border-color;
}
.wiki {
a {
color: $link-color;
text-decoration: none;
&:hover,
&:focus {
color: $link-hover-color;
text-decoration: $link-hover-decoration;
}
&.new {
color: $brand-danger;
}
}
}
> .attachments {
border-top-color: lighten($border-color, 5%);
@if ".priority-default" == $parent {
background-color: lighten($issue-bg, 1.5%);
} @else {
background-color: lighten($background, 5%);
}
span.author {
color: mix($color, $gray, 25%);
}
}
.list td {
border-bottom-color: $border-color;
}
@mixin priority-icon($parent, $color, $icon) {
table.list tbody tr#{$parent} .priority,
.issue.details#{$parent} .attributes td.priority,
.issue.details#{$parent} .attribute.priority .value {
&::before {
background-image: inline-svg($icon, (path: (fill: $color)));
}
}
}
@@ -134,6 +27,8 @@
@mixin tracker($parent, $background, $color) {
tr#{$parent} .id > a,
tr#{$parent} .issue_id > a,
a#{$parent}.issue,
a#{$parent},
.relations > span > a#{$parent},
.parent > a#{$parent} {
@@ -169,14 +64,4 @@
color: mix($color, $background, 50%);
}
}
@if $colored-issue {
.issue.details a#{$parent},
.issue.details .wiki a#{$parent} {
&,
&:hover {
color: $color;
}
}
}
}

View File

@@ -1,10 +1,29 @@
// Link variant
@mixin link-variant($default-color, $hover-color: darken($default-color, 10%)) {
color: $default-color;
@mixin link-variant($variant, $focus-hover: true) {
$colors: map-get($icon-color-map, $variant);
color: map-get($colors, normal);
@if $focus-hover {
&:focus,
&:hover {
color: map-get($colors, hover);
}
}
}
@mixin icon-variant($variant) {
$colors: map-get($icon-color-map, $variant);
&::before {
color: map-get($colors, normal);
}
&:focus,
&:hover {
color: $hover-color;
&::before {
color: map-get($colors, hover);
}
}
}

View File

@@ -4,15 +4,15 @@
$shadow: none;
@if ($depth == 1) {
$shadow: 0 1px 3px rgba(#000, .12), 0 1px 2px rgba(#000, .24);
} @elseif ($depth == 2) {
$shadow: 0 3px 6px rgba(#000, .16), 0 3px 6px rgba(#000, .23);
} @elseif ($depth == 3) {
$shadow: 0 10px 18px rgba(#000, .19), 0 6px 8px rgba(#000, .23);
} @elseif ($depth == 4) {
$shadow: 0 14px 28px rgba(#000, .25), 0 10px 10px rgba(#000, .22);
} @elseif ($depth == 5) {
$shadow: 0 19px 38px rgba(#000, .3), 0 15px 12px rgba(#000, .22);
$shadow: 0 1px 2px rgba(#000, .25);
} @else if ($depth == 2) {
$shadow: 0 5px 8px -2px rgba(#000, .25), 0 1px 2px rgba(#000, .3);
} @else if ($depth == 3) {
$shadow: 0 8px 16px -3px rgba(#000, .25), 0 2px 4px rgba(#000, .3);
} @else if ($depth == 4) {
$shadow: 0 14px 24px -4px rgba(#000, .25), 0 3px 10px rgba(#000, .3);
} @else if ($depth == 5) {
$shadow: 0 20px 32px -2px rgba(#000, .25), 0 4px 12px rgba(#000, .3);
}
box-shadow: $shadow;

View File

@@ -1,8 +1,8 @@
@import "common";
html {
overflow-y: scroll;
height: 100%;
overflow-y: scroll;
}
body {
@@ -10,7 +10,7 @@ body {
height: 100%;
margin: 0;
padding: 0;
background-color: mix($gray-lighter, $header-bg, 70%);
background-color: mix($gray-400, $header-bg, 70%);
color: $text-color;
font-family: $font-family-base;
font-size: $font-size-base;
@@ -50,10 +50,10 @@ button,
input,
select,
textarea {
box-sizing: border-box;
font-family: inherit;
font-size: $font-size-base;
line-height: $line-height-base;
box-sizing: border-box;
}
select,
@@ -67,17 +67,19 @@ input.editor,
@include placeholder;
height: $input-height-base;
padding: $input-padding-vertical $input-padding-horizontal;
transition: border-color ease-in-out .1s, box-shadow ease-in-out .1s;
transition:
border-color $transition-time ease-in-out,
box-shadow $transition-time ease-in-out;
border: 1px solid $input-border;
border-radius: $input-border-radius;
background-color: $input-bg;
color: $input-color;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
color: $input-color;
}
textarea {
resize: vertical;
height: auto;
resize: vertical;
}
select:-moz-focusring {
@@ -86,17 +88,19 @@ select:-moz-focusring {
}
button.ui-multiselect {
box-sizing: border-box;
height: $input-height-base;
padding: $input-padding-vertical $input-padding-horizontal;
transition: border-color ease-in-out .1s, box-shadow ease-in-out .1s;
overflow: hidden;
transition:
border-color $transition-time ease-in-out,
box-shadow $transition-time ease-in-out;
border: 1px solid $input-border;
background: $input-bg;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
color: $input-color;
white-space: nowrap;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
cursor: default;
overflow: hidden;
box-sizing: border-box;
&:hover,
&:focus {
@@ -125,11 +129,11 @@ button.ui-multiselect {
@include clearfix;
display: block;
position: relative;
z-index: 1000;
padding: 10px $padding-side;
overflow: hidden;
background-color: $main-menu-bg;
box-shadow: $panel-shadow;
overflow: hidden;
z-index: 1000;
.breadcrumbs {
margin-right: 10px;
@@ -168,6 +172,10 @@ button.ui-multiselect {
.links {
float: right;
input {
vertical-align: initial;
}
a {
padding-left: 5px;
cursor: pointer;
@@ -248,8 +256,8 @@ ul.ui-sortable {
.ui-tooltip {
.ui-tooltip-content {
hr {
margin-top: $line-height-computed / 2;
margin-bottom: $line-height-computed / 2;
margin-top: $line-height-computed * .5;
margin-bottom: $line-height-computed * .5;
border: 0;
border-top: 1px solid $hr-border;
}
@@ -262,8 +270,8 @@ ul.ui-sortable {
.issue-description {
max-height: 10em;
margin-top: 12px;
text-overflow: ellipsis;
overflow: hidden;
text-overflow: ellipsis;
}
.issue-field {
@@ -293,8 +301,8 @@ ul.ui-sortable {
.rb-sortable-disabled,
.ui-sortable-disabled {
background-color: $gray-lighter;
opacity: .5;
background-color: $gray-400;
}
.w-rb-header-collapsed {

View File

@@ -1,4 +1,4 @@
// scss-lint:disable Comment
// stylelint-disable comment-whitespace-inside, no-duplicate-selectors
@import "../common";
/*
@@ -22,10 +22,10 @@
.ui-helper-reset {
margin: 0;
padding: 0;
list-style: none;
border: 0;
outline: 0;
font-size: 100%;
list-style: none;
text-decoration: none;
}
@@ -33,11 +33,11 @@
display: inline-block;
&::after {
content: ".";
display: block;
visibility: hidden;
height: 0;
clear: both;
content: ".";
visibility: hidden;
}
}
@@ -66,7 +66,7 @@
----------------------------------*/
.ui-state-disabled {
cursor: default !important; // scss-lint:disable ImportantRule
cursor: default !important; // stylelint-disable-line declaration-no-important
}
/* Icons
@@ -76,9 +76,9 @@
.ui-icon {
display: block;
overflow: hidden;
background-repeat: no-repeat;
text-indent: -9999px;
overflow: hidden;
}
/* Misc visuals
@@ -156,9 +156,9 @@
.ui-widget-header .ui-state-default {
border: 1px solid $component-border;
background: $component-bg;
color: $component-color;
font-weight: normal;
box-shadow: none;
color: $component-color;
font-weight: $font-weight-normal;
}
.ui-state-default a,
@@ -177,7 +177,7 @@
border: 1px solid $component-active-border;
background: $component-active-bg;
color: $component-active-color;
font-weight: normal;
font-weight: $font-weight-normal;
.ui-icon {
background-image: url("../images/ui-icons_ffffff_256x240.png");
@@ -202,7 +202,7 @@
border: 1px solid $component-active-border;
background: $component-active-bg;
color: $component-active-color;
font-weight: normal;
font-weight: $font-weight-normal;
}
.ui-state-active a,
@@ -222,24 +222,24 @@
.ui-state-highlight,
.ui-widget-content .ui-state-highlight {
border: 1px solid #fcefa1;
background: #fbf9ee;
color: #363636;
border: 1px solid shade($yellow, 600);
background: shade($yellow, 200);
color: shade($yellow, 800);
a {
color: #363636;
color: shade($yellow, 800);
}
}
.ui-state-error,
.ui-widget-content .ui-state-error {
border: 1px solid #cd0a0a;
background: #fef1ec;
color: #cd0a0a;
border: 1px solid $red;
background: shade($red, 50);
color: $red;
a {
color: #cd0a0a;
color: $red;
}
}
@@ -250,14 +250,14 @@
.ui-priority-secondary,
.ui-widget-content .ui-priority-secondary {
font-weight: normal;
opacity: .7;
font-weight: $font-weight-normal;
}
.ui-state-disabled,
.ui-widget-content .ui-state-disabled {
background-image: none;
opacity: .35;
background-image: none;
}
/* Icons
@@ -520,16 +520,16 @@
/* Overlays */
.ui-widget-overlay {
background: #000;
opacity: .3;
background: $black;
}
.ui-widget-shadow {
margin: -8px 0 0 -8px;
padding: 8px;
border-radius: 8px;
background: #aaa;
opacity: .3;
background: $gray-600;
}
/* Resizable
@@ -542,8 +542,8 @@
.ui-resizable-handle {
display: block;
position: absolute;
font-size: .1px;
z-index: 9999;
font-size: .1px;
}
.ui-resizable-disabled .ui-resizable-handle,
@@ -631,7 +631,7 @@
}
.ui-accordion-header-active {
border-bottom: 0 !important; // scss-lint:disable ImportantRule
border-bottom: 0 !important; // stylelint-disable-line declaration-no-important
}
.ui-accordion-header a {
@@ -660,9 +660,9 @@
margin-top: -2px;
margin-bottom: 2px;
padding: 1em 2.2em;
border-top: 0;
overflow: auto;
zoom: 1;
border-top: 0;
}
.ui-accordion-content-active {
@@ -731,11 +731,11 @@
position: relative;
margin-right: .1em;
padding: 0;
text-align: center;
text-decoration: none !important; // scss-lint:disable ImportantRule
cursor: pointer;
overflow: visible;
zoom: 1;
text-align: center;
text-decoration: none !important; // stylelint-disable-line declaration-no-important
cursor: pointer;
}
/* the overflow property removes extra width in IE */
@@ -881,10 +881,10 @@ button.ui-button::-moz-focus-inner {
.ui-dialog-content {
position: relative;
padding: .5em 1em;
border: 0 none;
background: none;
overflow: auto;
zoom: 1;
border: 0 none;
background: none;
}
.ui-dialog-buttonpane {
@@ -899,9 +899,9 @@ button.ui-button::-moz-focus-inner {
margin: .5em .4em .5em 0;
padding: .2em .6em .3em;
float: right;
overflow: visible;
line-height: 1.4em;
cursor: pointer;
overflow: visible;
}
}
@@ -926,19 +926,19 @@ button.ui-button::-moz-focus-inner {
.ui-slider-handle {
position: absolute;
z-index: 2;
width: 1.2em;
height: 1.2em;
cursor: default;
z-index: 2;
}
.ui-slider-range {
display: block;
position: absolute;
z-index: 1;
border: 0 none;
background-position: 0 0;
font-size: .7em;
z-index: 1;
}
}
@@ -1006,8 +1006,8 @@ button.ui-button::-moz-focus-inner {
margin: 0 .2em 1px 0;
padding: 0;
float: left;
border-bottom: 0 !important; // scss-lint:disable ImportantRule
list-style: none;
border-bottom: 0 !important; // stylelint-disable-line declaration-no-important
white-space: nowrap;
a {
@@ -1048,7 +1048,7 @@ button.ui-button::-moz-focus-inner {
}
.ui-tabs-hide {
display: none !important; // scss-lint:disable ImportantRule
display: none !important; // stylelint-disable-line declaration-no-important
}
}
@@ -1081,9 +1081,9 @@ button.ui-button::-moz-focus-inner {
.ui-state-default {
border: 1px solid $body-bg;
background: $body-bg;
color: $component-color;
font-weight: normal;
box-shadow: none;
color: $component-color;
font-weight: $font-weight-normal;
a,
a:link,
@@ -1098,7 +1098,7 @@ button.ui-button::-moz-focus-inner {
border: 1px solid $component-active-border;
background: $component-active-bg;
color: $component-active-color;
font-weight: normal;
font-weight: $font-weight-normal;
}
.ui-datepicker-prev,
@@ -1169,8 +1169,8 @@ button.ui-button::-moz-focus-inner {
table {
width: 100%;
margin: 0 0 .4em;
font-size: .9em;
border-collapse: collapse;
font-size: .9em;
}
th {
@@ -1220,8 +1220,8 @@ button.ui-button::-moz-focus-inner {
margin: .5em .2em .4em;
padding: .2em .6em .3em;
float: right;
cursor: pointer;
overflow: visible;
cursor: pointer;
&.ui-datepicker-current {
float: left;
@@ -1361,7 +1361,7 @@ button.ui-button::-moz-focus-inner {
}
}
/* Progressbar
/* Progressbar
----------------------------------*/
.ui-progressbar {

View File

@@ -11,13 +11,13 @@
.ui-multiselect-single .ui-multiselect-checkboxes {
input {
position: absolute !important; // scss-lint:disable ImportantRule
top: auto !important; // scss-lint:disable ImportantRule
position: absolute !important; // stylelint-disable-line declaration-no-important
top: auto !important; // stylelint-disable-line declaration-no-important
left: -9999px;
}
label {
padding: 5px !important; // scss-lint:disable ImportantRule
padding: 5px !important; // stylelint-disable-line declaration-no-important
}
}
@@ -57,9 +57,9 @@
@include nice-shadow(2);
display: none;
position: absolute;
z-index: 10000;
padding: 3px;
text-align: left;
z-index: 10000;
}
.ui-multiselect-checkboxes {
@@ -71,10 +71,6 @@
top: 0;
margin: 3px 0 0 -20px;
float: left;
&:focus {
outline: none;
}
}
label {

View File

@@ -13,25 +13,22 @@
@include nice-shadow(2);
position: relative;
padding: 10px;
overflow: hidden;
border: 1px solid $tooltip-border;
background-color: $tooltip-bg;
color: $tooltip-text;
font-size: $font-size-list;
text-align: left;
word-wrap: break-word;
overflow: hidden;
}
.ui-tooltip-tip {
border-color: $tooltip-border;
background-color: $tooltip-bg;
}
.ui-tooltip-tip {
position: absolute;
margin: 0 auto;
border: 0 none;
background: transparent;
overflow: hidden;
z-index: 10;
margin: 0 auto;
overflow: hidden;
border: 0 none;
border-color: $tooltip-border;
background: transparent;
background-color: $tooltip-bg;
}

View File

@@ -51,17 +51,17 @@ $story-sp-input-width: 50px;
//
#backlogs_container {
padding: ($padding-side / 2) ($padding-side / 4);
padding: ($padding-side * .5) ($padding-side * .25);
.backlogs-panel-inner {
padding: 0 ($padding-side / 4);
padding: 0 ($padding-side * .25);
}
@media screen and (min-width: $screen-md-min) {
padding: $padding-side ($padding-side / 2);
padding: $padding-side ($padding-side * .5);
.backlogs-panel-inner {
padding: 0 ($padding-side / 2);
padding: 0 ($padding-side * .5);
}
}
@@ -158,9 +158,9 @@ $story-sp-input-width: 50px;
@include nice-shadow(1);
display: block;
position: relative;
margin: 0 0 ($padding-side / 2);
margin: 0 0 ($padding-side * .5);
border-radius: $border-radius-large $border-radius-large 0 0;
background-color: $gray-lightest;
background-color: $gray-100;
@media screen and (min-width: $screen-md-min) {
margin: 0 0 $padding-side;
@@ -189,9 +189,10 @@ $story-sp-input-width: 50px;
&:focus {
border-color: lighten($header-bg, 25%);
color: $gray-darkest;
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .2),
0 0 0 1px lighten($header-bg, 25%);
box-shadow:
inset 0 1px 3px rgba(0, 0, 0, .2),
0 0 0 1px lighten($header-bg, 25%);
color: $gray-950;
}
}
@@ -203,8 +204,8 @@ $story-sp-input-width: 50px;
.name {
padding-left: $padding-base-horizontal;
font-weight: $font-weight-bold;
overflow: hidden;
font-weight: $font-weight-bold;
}
.date {
@@ -242,18 +243,18 @@ $story-sp-input-width: 50px;
}
.editing {
$editor-padding: (($header-line-height - $input-height-base) / 2);
$editor-padding: (($header-line-height - $input-height-base) * .5);
.editors {
display: block;
position: absolute;
z-index: 1;
top: 0;
left: 0;
width: 100%;
padding-top: $editor-padding;
border-radius: $border-radius-large $border-radius-large 0 0;
background-color: $header-bg;
z-index: 1;
}
label,
@@ -279,7 +280,7 @@ $story-sp-input-width: 50px;
$name-width-minus: $header-right-width-wider + 35px;
position: relative;
width: calc(100% - #{$name-width-minus}) !important; // scss-lint:disable ImportantRule
width: calc(100% - #{$name-width-minus}) !important; // stylelint-disable-line declaration-no-important
min-width: 128px;
margin-left: $header-line-height - 2px;
float: left;
@@ -299,6 +300,7 @@ $story-sp-input-width: 50px;
.menu {
position: relative;
height: $header-line-height;
overflow: visible;
transition: background-color 0s .1s, border-color 0s .1s;
border-right: 1px solid #888;
border-bottom: 1px solid $header-bg;
@@ -306,13 +308,12 @@ $story-sp-input-width: 50px;
font-size: $font-size-small;
line-height: $line-height-base;
cursor: pointer;
overflow: visible;
&:hover {
z-index: 1000;
transition: background-color 0s 0s, border-color 0s 0s;
border-color: $body-bg;
background-color: $body-bg;
z-index: 1000;
}
.icon {
@@ -325,29 +326,29 @@ $story-sp-input-width: 50px;
}
ul {
visibility: hidden;
position: absolute;
z-index: 999;
top: $header-line-height + 1px;
left: -1px;
margin: 0;
padding: $padding-small-vertical 0;
list-style: none;
transition: visibility 0s .1s;
border: 1px solid $header-bg;
border-top-width: 0;
border-radius: 0 0 $border-radius-base $border-radius-base;
background-color: $body-bg;
list-style: none;
box-shadow: 0 2px 1px rgba(#000, .1);
visibility: hidden;
z-index: 999;
a {
color: $gray-darker;
color: $gray-900;
}
}
&:hover .items {
transition: visibility 0s 0s;
visibility: visible;
transition: visibility 0s 0s;
}
.item {
@@ -385,8 +386,8 @@ $story-sp-input-width: 50px;
background-color: darken($body-bg, 8%);
ul {
transition: visibility 0s 0s;
visibility: visible;
transition: visibility 0s 0s;
}
}
}
@@ -399,9 +400,9 @@ $story-sp-input-width: 50px;
.close_sprint {
float: left;
overflow: hidden;
color: $header-link;
white-space: nowrap;
overflow: hidden;
}
.closedbacklog {
@@ -425,8 +426,8 @@ $story-sp-input-width: 50px;
min-height: ($line-height-computed + $table-condensed-cell-padding * 2);
margin: 0;
padding: 0;
font-size: $font-size-list;
list-style: none;
font-size: $font-size-list;
.v {
display: none;
@@ -434,7 +435,7 @@ $story-sp-input-width: 50px;
.placeholder {
min-height: ($line-height-computed + $table-condensed-cell-padding * 2);
background-color: $gray;
background-color: $gray-700;
}
}
@@ -442,14 +443,14 @@ $story-sp-input-width: 50px;
display: block;
margin: 0;
padding: 0 $table-condensed-cell-padding;
border-top: 1px solid $gray-lighter;
border-top: 1px solid $gray-400;
background-color: $body-bg;
background-repeat: no-repeat;
background-position: center;
cursor: move;
&:nth-child(2n) {
background-color: $gray-lightest;
background-color: $gray-100;
}
&:hover {
@@ -458,7 +459,7 @@ $story-sp-input-width: 50px;
&.saving {
background-image: url("images/ajax.gif");
color: $gray-light;
color: $gray-600;
}
&.error {
@@ -485,28 +486,28 @@ $story-sp-input-width: 50px;
background-color: $tracker-default-bg;
color: $tracker-default-text;
} @else {
background-color: darken($gray-lightest, 3%);
color: $gray-dark;
background-color: darken($gray-100, 3%);
color: $gray-800;
}
font-weight: $font-weight-bold;
text-align: right;
&::before {
content: "#";
margin-left: -1em;
@if $color-trackers {
color: mix($tracker-default-text, $tracker-default-bg, 50%);
} @else {
color: $gray-light;
color: $gray-600;
}
font-weight: normal;
content: "#";
font-weight: $font-weight-normal;
}
&:hover {
@if $color-trackers {
background-color: darken($tracker-default-bg, 10%);
} @else {
background-color: $gray-lighter;
background-color: $gray-400;
}
text-decoration: none;
}
@@ -527,9 +528,9 @@ $story-sp-input-width: 50px;
width: $story-project-width;
padding: $table-condensed-cell-padding 0 $table-condensed-cell-padding $table-condensed-cell-padding;
float: left;
overflow: hidden;
text-align: center;
white-space: nowrap;
overflow: hidden;
.t {
overflow: hidden;
@@ -592,9 +593,10 @@ $story-sp-input-width: 50px;
&:focus {
border-color: darken($highlight-border, 15%);
color: $gray-darkest;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075),
0 0 5px rgba(darken($highlight-border, 15%), .5);
box-shadow:
inset 0 1px 2px rgba(0, 0, 0, .075),
0 0 5px rgba(darken($highlight-border, 15%), .5);
color: $gray-950;
}
}
@@ -643,11 +645,11 @@ $story-sp-input-width: 50px;
&.subject {
$subject-width-minus: $story-status-input-width + $story-sp-input-width + 5px * 2;
width: calc(100% - #{$subject-width-minus}) !important; // scss-lint:disable ImportantRule
width: calc(100% - #{$subject-width-minus}) !important; // stylelint-disable-line declaration-no-important
height: 60px;
float: left;
white-space: normal;
overflow: auto;
white-space: normal;
}
&.category_id {
@@ -682,8 +684,8 @@ $story-sp-input-width: 50px;
// Override: display story subject in multiple lines
.rb-multilinesubject & .subject {
height: auto;
white-space: normal;
overflow: show;
white-space: normal;
}
@if $color-trackers {
@@ -755,9 +757,10 @@ $story-sp-input-width: 50px;
@include button-size($input-padding-vertical, $input-padding-horizontal, $font-size-base, $line-height-base, $border-radius-base);
display: inline-block;
margin-bottom: 0;
transition: background-color ease-in-out .07s,
border-color ease-in-out .07s,
box-shadow ease-in-out .07s;
transition:
background-color ease-in-out .07s,
border-color ease-in-out .07s,
box-shadow ease-in-out .07s;
border: 1px solid;
font-weight: $btn-font-weight;
text-align: center;
@@ -820,8 +823,8 @@ $story-sp-input-width: 50px;
//
#show_completed_sprints {
margin-left: $padding-side / 2;
color: $gray-darkest;
margin-left: $padding-side * .5;
color: $gray-950;
cursor: pointer;
}

View File

@@ -64,11 +64,11 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
#board_header {
position: absolute;
z-index: 200;
margin-right: 10px;
margin-bottom: 0;
border: 1px solid darken($header-bg, 5%);
background-color: $header-bg;
z-index: 200;
td {
height: 20px;
@@ -86,7 +86,7 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
}
.board {
border: 1px solid $gray;
border: 1px solid $gray-700;
border-top: 0 none;
background-color: $body-bg;
color: $text-color;
@@ -141,27 +141,27 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
}
.story {
color: $gray-darker;
color: $gray-900;
.id {
margin-bottom: 5px;
padding: 0 3px;
overflow: hidden;
border-radius: $border-radius-base;
opacity: .8;
background-color: $body-bg;
font-size: .9em;
line-height: 16px;
opacity: .8;
overflow: hidden;
a,
.remaininghours {
margin-left: 4px;
float: right;
font-weight: normal;
font-weight: $font-weight-normal;
}
a {
color: $gray-darkest;
color: $gray-950;
font-size: $font-size-small-px;
font-weight: $font-weight-bold;
}
@@ -174,8 +174,8 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
.subject {
height: $issue-height * .6;
padding: 2px;
line-height: 1.3;
overflow: hidden;
line-height: 1.3;
}
&.closed .subject {
@@ -226,8 +226,8 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
float: left;
border: 0 none;
border-radius: $border-radius-large;
background-color: $gray-lighter;
color: $gray-darker;
background-color: $gray-400;
color: $gray-900;
font-size: 10px;
line-height: 1.3;
cursor: move;
@@ -245,21 +245,21 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
.id {
margin-bottom: 5px;
padding: 0 3px;
overflow: hidden;
border-radius: $border-radius-base;
opacity: .8;
background-color: $body-bg;
font-size: $font-size-small-px;
font-weight: $font-weight-bold;
line-height: 16px;
text-align: right;
opacity: .8;
overflow: hidden;
.v {
display: none;
}
a {
color: $gray-darkest;
color: $gray-950;
}
}
@@ -284,9 +284,9 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
margin-top: 2px;
padding: 2px;
padding-top: 0;
overflow: hidden;
font-size: 9px;
white-space: nowrap;
overflow: hidden;
}
.v {
@@ -375,9 +375,9 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
}
.ui-widget-header {
opacity: .5;
background: none;
background-color: #fff;
opacity: .5;
}
.ui-dialog-title {

File diff suppressed because one or more lines are too long

1
svg/calendar.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="880.5 896.5 16 16"><path fill="red" d="M882.5 910.5h2.3v-2.3h-2.3v2.3zm2.8 0h2.5v-2.3h-2.5v2.3zm-2.8-2.8h2.3v-2.5h-2.3v2.5zm2.8 0h2.5v-2.5h-2.5v2.5zm-2.8-3h2.3v-2.2h-2.3v2.3zm5.8 5.8h2.5v-2.3h-2.5v2.3zm-3-5.8h2.5v-2.2h-2.5v2.3zm6 5.8h2.2v-2.3h-2.3v2.3zm-3-2.8h2.5v-2.5h-2.5v2.5zm-2.8-6.7v-2.3-.1l-.2-.1h-.7l-.1.2v2.5H885.5l.1-.2zm5.8 6.8h2.2v-2.5h-2.3v2.5zm-3-3h2.5v-2.3h-2.5v2.3zm3 0h2.2v-2.3h-2.3v2.3zm.2-3.8v-2.3-.1l-.2-.1h-.7l-.1.2v2.5H891.5l.1-.2zm3-.5v10c0 .3-.1.5-.3.7s-.4.3-.7.3h-11c-.3 0-.5-.1-.7-.3s-.3-.4-.3-.7v-10c0-.3.1-.5.3-.7s.4-.3.7-.3h1v-.8c0-.3.1-.6.4-.8s.5-.4.8-.4h.5c.4 0 .7.1 1 .4s.3.5.3.8v.8h3v-.8c0-.3.1-.6.4-.8s.5-.4.8-.4h.5c.4 0 .7.1 1 .4s.3.5.3.8v.8h1c.3 0 .5.1.7.3s.3.4.3.7z"/></svg>

After

Width:  |  Height:  |  Size: 782 B

1
svg/chevron-left.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="red" d="M8.996 12.659l-3.5-4a1.002 1.002 0 0 1 0-1.317l3.5-4a1 1 0 1 1 1.503 1.317L7.576 8l2.924 3.342a1 1 0 1 1-1.504 1.317z"/></svg>

After

Width:  |  Height:  |  Size: 209 B

1
svg/chevron-right.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="red" d="M6.25 13a1 1 0 0 1-.752-1.658L8.422 8 5.499 4.659a1 1 0 1 1 1.503-1.317l3.5 4c.329.377.329.94 0 1.317l-3.5 4A.993.993 0 0 1 6.25 13z"/></svg>

After

Width:  |  Height:  |  Size: 225 B

1
svg/diff-added.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="-14.5 16.5 14 14"><path fill="red" d="M-1.5 16.5h-12c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-12c0-.55-.45-1-1-1zm0 13h-12v-12h12v12zm-7-5h-3v-2h3v-3h2v3h3v2h-3v3h-2v-3z"/></svg>

After

Width:  |  Height:  |  Size: 264 B

1
svg/diff-copied.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="-7.5 8.5 14 14"><path fill="red" d="M5.5 8.5h-12c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-12c0-.55-.45-1-1-1zm0 13h-12v-12h12v12z"/><path fill="red" d="M4 13l-6 6-3-3 1.5-1.5L-2 16l4.5-4.5z"/></svg>

After

Width:  |  Height:  |  Size: 284 B

Some files were not shown because too many files have changed in this diff Show More