@ -0,0 +1,9 @@ |
|||||||
|
root = true |
||||||
|
|
||||||
|
[*] |
||||||
|
end_of_line = lf |
||||||
|
charset = utf-8 |
||||||
|
trim_trailing_whitespace = true |
||||||
|
insert_final_newline = true |
||||||
|
indent_style = space |
||||||
|
indent_size = 2 |
@ -0,0 +1,10 @@ |
|||||||
|
module.exports = { |
||||||
|
"extends": "standard", |
||||||
|
"globals": { |
||||||
|
"$": "readonly", |
||||||
|
"localStorage": "readonly", |
||||||
|
}, |
||||||
|
"ignorePatterns": [ |
||||||
|
"/javascripts/", |
||||||
|
], |
||||||
|
}; |
@ -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 |
@ -0,0 +1,6 @@ |
|||||||
|
/.sass-cache |
||||||
|
/node_modules |
||||||
|
#/src/sass/_custom-variables.scss |
||||||
|
/.sublime-grunt.cache |
||||||
|
#/images/logo |
||||||
|
/.stylelintcache |
@ -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/' |
||||||
|
], |
||||||
|
} |
@ -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, |
||||||
|
} |
||||||
|
}; |
@ -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 |
@ -0,0 +1,85 @@ |
|||||||
|
module.exports = function (grunt) { |
||||||
|
grunt.initConfig({ |
||||||
|
src: 'src/', |
||||||
|
|
||||||
|
sass: { |
||||||
|
options: { |
||||||
|
implementation: require('sass'), |
||||||
|
sourceMap: false, |
||||||
|
outputStyle: 'compressed', |
||||||
|
functions: { |
||||||
|
'inline-svg($path, $selectors: null)': require('@liquid-js/sass-inline-svg')('./svg', { |
||||||
|
optimize: true, |
||||||
|
encodingFormat: 'uri' |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
theme: { |
||||||
|
files: { |
||||||
|
'stylesheets/application.css': '<%= src %>sass/application.scss' |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
plugins: { |
||||||
|
files: [ |
||||||
|
{ |
||||||
|
expand: true, |
||||||
|
cwd: '<%= src %>sass/plugins/', |
||||||
|
src: '**/*.scss', |
||||||
|
dest: 'plugins/', |
||||||
|
ext: '.css', |
||||||
|
extDot: 'last' |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
postcss: { |
||||||
|
options: { |
||||||
|
processors: [ |
||||||
|
require('autoprefixer')() |
||||||
|
] |
||||||
|
}, |
||||||
|
|
||||||
|
all: { |
||||||
|
src: [ |
||||||
|
'stylesheets/*.css', |
||||||
|
'plugins/**/*.css' |
||||||
|
] |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
uglify: { |
||||||
|
theme: { |
||||||
|
src: [ |
||||||
|
'<%= src %>javascripts/modules/*.js', |
||||||
|
'<%= src %>javascripts/theme.js' |
||||||
|
], |
||||||
|
dest: 'javascripts/theme.js' |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
watch: { |
||||||
|
css: { |
||||||
|
files: ['<%= src %>sass/**/*.scss'], |
||||||
|
tasks: ['css'] |
||||||
|
}, |
||||||
|
|
||||||
|
js: { |
||||||
|
files: ['<%= src %>javascripts/**/*.js'], |
||||||
|
tasks: ['js'] |
||||||
|
} |
||||||
|
} |
||||||
|
}) |
||||||
|
|
||||||
|
grunt.loadNpmTasks('grunt-sass') |
||||||
|
grunt.loadNpmTasks('grunt-postcss') |
||||||
|
grunt.loadNpmTasks('grunt-contrib-watch') |
||||||
|
grunt.loadNpmTasks('grunt-contrib-uglify') |
||||||
|
|
||||||
|
grunt.registerTask('css', ['sass', 'postcss']) |
||||||
|
grunt.registerTask('js', ['uglify']) |
||||||
|
|
||||||
|
grunt.registerTask('default', ['css', 'js']) |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
The MIT License (MIT) |
||||||
|
|
||||||
|
Copyright (c) 2015 Grzegorz Rajchman <mrliptontea@griego.pl> |
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||||
|
of this software and associated documentation files (the "Software"), to deal |
||||||
|
in the Software without restriction, including without limitation the rights |
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||||
|
copies of the Software, and to permit persons to whom the Software is |
||||||
|
furnished to do so, subject to the following conditions: |
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all |
||||||
|
copies or substantial portions of the Software. |
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||||
|
SOFTWARE. |
@ -0,0 +1,65 @@ |
|||||||
|
# PurpleMine 2 |
||||||
|
|
||||||
|
A free Redmine 3.0+ theme written in SCSS. |
||||||
|
|
||||||
|
![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.png) |
||||||
|
|
||||||
|
It's written in [SCSS]. It uses [normalize.css] and benefits from some parts of [Bootstrap][bootstrap-sass] like mixins, structure, and stuff. |
||||||
|
|
||||||
|
## Main features |
||||||
|
|
||||||
|
* Bigger, easier to read fonts, |
||||||
|
* 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), |
||||||
|
* Jira-inspired priority icons, |
||||||
|
* Toggling sidebar visibility, |
||||||
|
* Easy to customize via variables. |
||||||
|
|
||||||
|
## How install it |
||||||
|
|
||||||
|
To install PurpleMine, just download [.zip](https://github.com/mrliptontea/PurpleMine2/archive/master.zip) and unpack it to your Redmine's `public/themes` folder. |
||||||
|
|
||||||
|
Then go to Redmine > Administration > Settings > Display and select PurpleMine2 from the list and save the changes. |
||||||
|
|
||||||
|
## Plugins |
||||||
|
|
||||||
|
This theme also features a new look for [Redmine Backlogs][redmine_backlogs] plugin. To install it, simply copy stylesheets from `PurpleMine2/plugins/redmine_backlogs` and overwrite files in `{redmine}/plugins/redmine_backlogs/assets/stylesheets` and restart Redmine. |
||||||
|
|
||||||
|
Also, [Redmine Time Tracker][redmine_time_tracker] and [Redmine People][redmine_crm_people] plugins should look nice with PurpleMine. |
||||||
|
|
||||||
|
## How to customize it |
||||||
|
|
||||||
|
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. |
||||||
|
|
||||||
|
Then, from the directory that contains PurpleMine run: |
||||||
|
|
||||||
|
npm install |
||||||
|
|
||||||
|
Now all the dependencies should be ready to use. Run one more command: |
||||||
|
|
||||||
|
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. |
||||||
|
|
||||||
|
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";`. |
||||||
|
|
||||||
|
If you need to customize styles for [Redmine Backlogs][redmine_backlogs] remember to include your `_custom-variables.scss` in `src/sass/plugins/redmine_backlogs/_common.scss`. |
||||||
|
|
||||||
|
## Changelog |
||||||
|
|
||||||
|
[Changelog](./CHANGELOG.md). |
||||||
|
|
||||||
|
[SCSS]: http://sass-lang.com/ |
||||||
|
[normalize.css]: https://github.com/necolas/normalize.css |
||||||
|
[bootstrap-sass]: https://github.com/twbs/bootstrap-sass |
||||||
|
[redmine_backlogs]: https://github.com/backlogs/redmine_backlogs |
||||||
|
[redmine_time_tracker]: https://github.com/hicknhack-software/redmine_time_tracker |
||||||
|
[redmine_crm_people]: http://www.redminecrm.com/projects/people/ |
||||||
|
[stuff_to_do]: https://github.com/raafael911/stuff_to_do_plugin |
@ -0,0 +1,15 @@ |
|||||||
|
var browserSync = require('browser-sync'); |
||||||
|
|
||||||
|
browserSync({ |
||||||
|
proxy: 'http://137.149.200.29', |
||||||
|
files: 'stylesheets/**/*.css', |
||||||
|
plugins: ['bs-rewrite-rules'], |
||||||
|
//serveStatic: ['.'],
|
||||||
|
serveStatic: ['stylesheets'], |
||||||
|
rewriteRules: [ |
||||||
|
{ |
||||||
|
match: /\/themes\/PurpleMine2-master\/stylesheets/g, |
||||||
|
replace: '' |
||||||
|
} |
||||||
|
] |
||||||
|
}); |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 434 KiB |
After Width: | Height: | Size: 2.2 KiB |
@ -0,0 +1,62 @@ |
|||||||
|
{ |
||||||
|
"name": "purplemine", |
||||||
|
"description": "A free Redmine 3.0+ theme written in SCSS", |
||||||
|
"keywords": [ |
||||||
|
"redmine", |
||||||
|
"theme", |
||||||
|
"sass", |
||||||
|
"scss" |
||||||
|
], |
||||||
|
"author": "mrliptontea", |
||||||
|
"repository": { |
||||||
|
"type": "git", |
||||||
|
"url": "git@github.com:mrliptontea/PurpleMine2.git" |
||||||
|
}, |
||||||
|
"license": "MIT", |
||||||
|
"bugs": { |
||||||
|
"url": "https://github.com/mrliptontea/PurpleMine2/issues" |
||||||
|
}, |
||||||
|
"homepage": "https://github.com/mrliptontea/PurpleMine2", |
||||||
|
"scripts": { |
||||||
|
"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": { |
||||||
|
"@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": { |
||||||
|
"browser-sync": "^3.0.2", |
||||||
|
"bs-rewrite-rules": "^2.1.2", |
||||||
|
"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" |
||||||
|
}, |
||||||
|
"browserslist": [ |
||||||
|
"last 2 versions", |
||||||
|
"> 1%", |
||||||
|
"not dead" |
||||||
|
], |
||||||
|
"husky": { |
||||||
|
"hooks": { |
||||||
|
"pre-commit": "lint-staged --relative" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1 @@ |
|||||||
|
html{height:100%;overflow-y:scroll}body{width:100%;height:100%;margin:0;padding:0;background-color:#b6b1d3;color:#3e4359;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:14px;font-weight:normal;line-height:1.428571429}a{color:#0051cc;text-decoration:none}a:hover,a:focus{color:#0065ff;text-decoration:underline}.issue.closed{color:#707893;text-decoration:line-through}.project.closed{color:#707893}.user.locked{color:#707893}button,input,select,textarea{box-sizing:border-box;font-family:inherit;font-size:14px;line-height:1.428571429}select,textarea,input[type=search],input[type=text],input.name,input.editor,#col_width input{height:28px;padding:3px 8px;transition:border-color 50ms ease-in-out,box-shadow 50ms ease-in-out;border:1px solid #d1d3e0;border-radius:2px;background-color:#fff;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);color:#3e4359}select:focus,textarea:focus,input[type=search]:focus,input[type=text]:focus,input.name:focus,input.editor:focus,#col_width input:focus{border-color:rgba(81,45,196,.6);outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 2px rgba(81,45,196,.2)}select::-moz-placeholder, textarea::-moz-placeholder, input[type=search]::-moz-placeholder, input[type=text]::-moz-placeholder, input.name::-moz-placeholder, input.editor::-moz-placeholder, #col_width input::-moz-placeholder{opacity:1;color:#a3a6b7}select:-ms-input-placeholder, textarea:-ms-input-placeholder, input[type=search]:-ms-input-placeholder, input[type=text]:-ms-input-placeholder, input.name:-ms-input-placeholder, input.editor:-ms-input-placeholder, #col_width input:-ms-input-placeholder{opacity:1;color:#a3a6b7}select::placeholder,textarea::placeholder,input[type=search]::placeholder,input[type=text]::placeholder,input.name::placeholder,input.editor::placeholder,#col_width input::placeholder{opacity:1;color:#a3a6b7}textarea{height:auto;resize:vertical}select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #000}button.ui-multiselect{box-sizing:border-box;height:28px;padding:3px 8px;overflow:hidden;transition:border-color 50ms ease-in-out,box-shadow 50ms ease-in-out;border:1px solid #d1d3e0;background:#fff;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);color:#3e4359;white-space:nowrap;cursor:default}button.ui-multiselect:hover,button.ui-multiselect:focus{color:#3e4359}button.ui-multiselect:active{transform:translate(0, 0)}button.ui-multiselect.ui-state-active{border-color:#512dc4;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(81,45,196,.5)}button.ui-multiselect .ui-icon{margin-top:1px}#toolbar{display:block;position:relative;z-index:1000;padding:10px 20px;overflow:hidden;background-color:#f6f6f9;box-shadow:0 1px 2px rgba(0,0,0,.07),0 3px 8px rgba(0,0,0,.04)}#toolbar::after{content:"";display:block;clear:both}#toolbar .breadcrumbs{margin-right:10px;float:left}#toolbar .breadcrumbs select{margin-right:5px;vertical-align:middle}#toolbar .breadcrumbs .home{font-weight:600}#toolbar .breadcrumbs .separator{position:relative;top:-1px;padding:0 .2em;font-weight:600}#toolbar .userselect{position:relative;float:left}#toolbar .userselect ul{padding-left:0}#toolbar .userselect br{display:none}#toolbar .links{float:right}#toolbar .links input{vertical-align:initial}#toolbar .links a{padding-left:5px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#toolbar input[type=search],#toolbar input[type=text],#toolbar select,#toolbar .ui-widget{font-family:inherit;font-size:inherit}@media screen and (max-width: 1199px){#toolbar{font-size:.86em}#toolbar input[type=search],#toolbar input[type=text],#toolbar select,#toolbar .ui-widget{height:28px;padding:3px 5px}#toolbar #project_quick_jump_box{width:128px}}.loading #refresh{background-image:url("images/bouncer.gif");background-repeat:no-repeat;background-position:-6px 1px}.clearfix::after{content:"";display:block;clear:both}#content{margin:0;padding:0;overflow:visible}#helpers,.meta,.editors{display:none}.ui-dialog .editor{display:block}ul.ui-sortable{min-height:20px}.ui-tooltip .ui-tooltip-content hr{margin-top:10px;margin-bottom:10px;border:0;border-top:1px solid #a3a6b7}.ui-tooltip .ui-tooltip-content .wiki-anchor{display:none}.ui-tooltip .issue-description{max-height:10em;margin-top:12px;overflow:hidden;text-overflow:ellipsis}.ui-tooltip .issue-field{margin:2px 0 0;padding-left:160px;overflow:hidden}.ui-tooltip .issue-field:first-child{margin-top:0}.ui-tooltip .issue-field>label{margin-left:-160px;padding-right:5px;float:left;font-weight:600}.tooltip_text{display:none}.rb-sortable-disabled,.ui-sortable-disabled{opacity:.5;background-color:#dadce6}.w-rb-header-collapsed{height:27px;overflow:hidden}body .ui-widget,body .ui-widget input,body .ui-widget select,body .ui-widget textarea,body .ui-widget button{font-family:inherit;font-size:inherit} |
@ -0,0 +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 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} |
@ -0,0 +1 @@ |
|||||||
|
.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} |
@ -0,0 +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: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} |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 99 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 64 KiB |
@ -0,0 +1,107 @@ |
|||||||
|
var PurpleMine = PurpleMine || {} // eslint-disable-line no-use-before-define
|
||||||
|
|
||||||
|
PurpleMine.HistoryTabs = (function () { |
||||||
|
'use strict' |
||||||
|
|
||||||
|
var instance |
||||||
|
var translations = { |
||||||
|
en: { |
||||||
|
all: 'All', |
||||||
|
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: '変更' |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function HistoryTabs () { |
||||||
|
if (instance) { |
||||||
|
return instance |
||||||
|
} |
||||||
|
|
||||||
|
instance = this |
||||||
|
|
||||||
|
this.$tabsContainer = null |
||||||
|
this.$tabs = null |
||||||
|
this.$history = $('#history') |
||||||
|
this.lang = document.documentElement.lang |
||||||
|
|
||||||
|
if (typeof translations[this.lang] === 'undefined') { |
||||||
|
this.lang = 'en' |
||||||
|
} |
||||||
|
|
||||||
|
this._ = translations[this.lang] |
||||||
|
|
||||||
|
if (this.$history.length > 0 && $('#history > h3').length > 0) { |
||||||
|
buildTabs() |
||||||
|
markFirstOfTypes() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function buildTabs () { |
||||||
|
var html = '' |
||||||
|
var liStart = '<li><a href="javascript:;" class="' |
||||||
|
var liMid = 'history-tab" data-tab="' |
||||||
|
var liEnd = '</a></li>' |
||||||
|
|
||||||
|
html += '<div class="tabs"><ul>' |
||||||
|
html += liStart + 'selected ' + liMid + 'all">' + instance._.all + liEnd |
||||||
|
html += liStart + liMid + 'notes">' + instance._.notes + liEnd |
||||||
|
html += liStart + liMid + 'details">' + instance._.details + liEnd |
||||||
|
html += '</ul></div>' |
||||||
|
|
||||||
|
instance.$tabsContainer = $(html) |
||||||
|
$('#history > h3').after(instance.$tabsContainer) |
||||||
|
|
||||||
|
instance.$tabs = instance.$tabsContainer.find('.history-tab') |
||||||
|
instance.$tabs.on('click', tabClick) |
||||||
|
} |
||||||
|
|
||||||
|
function markFirstOfTypes () { |
||||||
|
instance.$history.find('.has-notes:first').addClass('first-of-notes') |
||||||
|
instance.$history.find('.has-details:first').addClass('first-of-details') |
||||||
|
} |
||||||
|
|
||||||
|
var tabClick = function () { |
||||||
|
var $this = $(this) |
||||||
|
var tab = $this.attr('data-tab') |
||||||
|
|
||||||
|
instance.$tabs.removeClass('selected') |
||||||
|
$this.addClass('selected') |
||||||
|
|
||||||
|
instance.$history |
||||||
|
.removeClass('hide-details') |
||||||
|
.removeClass('hide-notes') |
||||||
|
|
||||||
|
if (tab === 'notes') { |
||||||
|
instance.$history.addClass('hide-details') |
||||||
|
} else if (tab === 'details') { |
||||||
|
instance.$history.addClass('hide-notes') |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return HistoryTabs |
||||||
|
}()) |
@ -0,0 +1,129 @@ |
|||||||
|
var PurpleMine = PurpleMine || {} // eslint-disable-line no-use-before-define
|
||||||
|
|
||||||
|
PurpleMine.MenuCollapse = (function () { |
||||||
|
'use strict' |
||||||
|
|
||||||
|
var instance |
||||||
|
var translations = { |
||||||
|
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: 'トップメニューの展開/折りたたみ' |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function MenuCollapse () { |
||||||
|
if (instance) { |
||||||
|
return instance |
||||||
|
} |
||||||
|
|
||||||
|
instance = this |
||||||
|
|
||||||
|
this.lang = document.documentElement.lang |
||||||
|
|
||||||
|
if (typeof translations[this.lang] === 'undefined') { |
||||||
|
this.lang = 'en' |
||||||
|
} |
||||||
|
|
||||||
|
this._ = translations[this.lang] |
||||||
|
|
||||||
|
this.menus = { |
||||||
|
top: { |
||||||
|
$el: $('#top-menu') |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
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) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function handleMenu (menu) { |
||||||
|
if (instance.menus[menu].$el.css('maxHeight') === 'none') { |
||||||
|
return false |
||||||
|
} |
||||||
|
|
||||||
|
instance.menus[menu].collapsed = true |
||||||
|
|
||||||
|
if (window.localStorage) { |
||||||
|
instance.menus[menu].collapsed = |
||||||
|
localStorage.getItem(getMenuStorageKey(menu)) === null |
||||||
|
} |
||||||
|
|
||||||
|
buildToggleButton(menu) |
||||||
|
|
||||||
|
if (instance.isCollapsed(menu) === false) { |
||||||
|
instance.expandMenu(menu) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function getMenuStorageKey (menu) { |
||||||
|
return 'PurpleMine:' + menu + 'MenuExpanded' |
||||||
|
} |
||||||
|
|
||||||
|
function buildToggleButton (menu) { |
||||||
|
var togglerClass = menu + '-menu-toggler' |
||||||
|
var togglerLabel = instance._[menu + 'MenuToggler'] |
||||||
|
var togglerHtml = '<a href="javascript:;" class="' + |
||||||
|
togglerClass + |
||||||
|
'" title="' + |
||||||
|
togglerLabel + |
||||||
|
'"></a>' |
||||||
|
instance.menus[menu].$toggler = $(togglerHtml) |
||||||
|
|
||||||
|
instance.menus[menu].$el.prepend(instance.menus[menu].$toggler) |
||||||
|
instance.menus[menu].$toggler.on('click', { menu: menu }, instance.toggleMenu) |
||||||
|
} |
||||||
|
|
||||||
|
MenuCollapse.prototype.toggleMenu = function (event) { |
||||||
|
var menu = event.data.menu || '' |
||||||
|
|
||||||
|
if (instance.isCollapsed(menu)) { |
||||||
|
instance.expandMenu(menu) |
||||||
|
} else { |
||||||
|
instance.collapseMenu(menu) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
MenuCollapse.prototype.isCollapsed = function (menu) { |
||||||
|
return this.menus[menu].collapsed |
||||||
|
} |
||||||
|
|
||||||
|
MenuCollapse.prototype.expandMenu = function (menu) { |
||||||
|
this.menus[menu].$el.addClass('expanded') |
||||||
|
this.menus[menu].$toggler.addClass('expanded') |
||||||
|
this.menus[menu].collapsed = false |
||||||
|
|
||||||
|
if (window.localStorage) { |
||||||
|
localStorage.setItem(getMenuStorageKey(menu), 'x') |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
MenuCollapse.prototype.collapseMenu = function (menu) { |
||||||
|
this.menus[menu].$el.removeClass('expanded') |
||||||
|
this.menus[menu].$toggler.removeClass('expanded') |
||||||
|
this.menus[menu].collapsed = true |
||||||
|
|
||||||
|
if (window.localStorage) { |
||||||
|
localStorage.removeItem(getMenuStorageKey(menu)) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return MenuCollapse |
||||||
|
}()) |
@ -0,0 +1,143 @@ |
|||||||
|
var PurpleMine = PurpleMine || {} // eslint-disable-line no-use-before-define
|
||||||
|
/* global Raphael: false, revisionGraph: true */ |
||||||
|
|
||||||
|
PurpleMine.RevisionGraph = function (holder, commitsHash, graphSpace) { |
||||||
|
'use strict' |
||||||
|
|
||||||
|
var XSTEP = 20 |
||||||
|
var CIRCLE_INROW_OFFSET = 17 |
||||||
|
var commitsByScmid = commitsHash |
||||||
|
var commits = $.map(commitsByScmid, function (val) { return val }) |
||||||
|
var maxRdmid = commits.length - 1 |
||||||
|
var commitTableRows = $('table.changesets tr.changeset') |
||||||
|
|
||||||
|
// create graph
|
||||||
|
if (revisionGraph !== null) { |
||||||
|
revisionGraph.clear() |
||||||
|
} else { |
||||||
|
revisionGraph = new Raphael(holder) |
||||||
|
} |
||||||
|
|
||||||
|
var top = revisionGraph.set() |
||||||
|
|
||||||
|
// init dimensions
|
||||||
|
var graphXOffset = commitTableRows.first().find('td').first().position().left - $(holder).position().left |
||||||
|
var graphYOffset = $(holder).position().top |
||||||
|
var graphRightSide = graphXOffset + (graphSpace + 1) * XSTEP |
||||||
|
var graphBottom = commitTableRows.last().position().top + commitTableRows.last().height() - graphYOffset |
||||||
|
|
||||||
|
revisionGraph.setSize(graphRightSide, graphBottom) |
||||||
|
|
||||||
|
// init colors
|
||||||
|
var colors = [ |
||||||
|
'#e74c3c', |
||||||
|
'#584492', |
||||||
|
'#019851', |
||||||
|
'#ed820c', |
||||||
|
'#4183c4' |
||||||
|
] |
||||||
|
|
||||||
|
// get more colors if needed
|
||||||
|
if (graphSpace >= colors.length) { |
||||||
|
Raphael.getColor.reset() |
||||||
|
|
||||||
|
for (var k = 0; k <= graphSpace; k++) { |
||||||
|
colors.push(Raphael.getColor(0.9)) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
var parentCommit |
||||||
|
var x, y, parentX, parentY |
||||||
|
var path, title |
||||||
|
var revisionDotOverlay |
||||||
|
|
||||||
|
$.each(commits, function (index, commit) { |
||||||
|
// eslint-disable-next-line no-prototype-builtins
|
||||||
|
if (!commit.hasOwnProperty('space')) { |
||||||
|
commit.space = 0 |
||||||
|
} |
||||||
|
|
||||||
|
y = commitTableRows.eq(maxRdmid - commit.rdmid).position().top - graphYOffset + CIRCLE_INROW_OFFSET |
||||||
|
x = graphXOffset + XSTEP / 2 + XSTEP * commit.space |
||||||
|
|
||||||
|
revisionGraph |
||||||
|
.circle(x, y, 3.5) |
||||||
|
.attr({ |
||||||
|
fill: colors[commit.space], |
||||||
|
stroke: 'none' |
||||||
|
}) |
||||||
|
.toFront() |
||||||
|
|
||||||
|
// paths to parents
|
||||||
|
$.each(commit.parent_scmids, function (index, parentScmid) { |
||||||
|
parentCommit = commitsByScmid[parentScmid] |
||||||
|
|
||||||
|
if (parentCommit) { |
||||||
|
// eslint-disable-next-line no-prototype-builtins
|
||||||
|
if (!parentCommit.hasOwnProperty('space')) { |
||||||
|
parentCommit.space = 0 |
||||||
|
} |
||||||
|
|
||||||
|
parentY = commitTableRows.eq(maxRdmid - parentCommit.rdmid).position().top - graphYOffset + CIRCLE_INROW_OFFSET |
||||||
|
parentX = graphXOffset + XSTEP / 2 + XSTEP * parentCommit.space |
||||||
|
|
||||||
|
if (parentCommit.space === commit.space) { |
||||||
|
// vertical path
|
||||||
|
path = revisionGraph.path([ |
||||||
|
'M', x, y, |
||||||
|
'V', parentY]) |
||||||
|
} else { |
||||||
|
// path to a commit in a different branch (Bezier curve)
|
||||||
|
path = revisionGraph.path([ |
||||||
|
'M', x, y, |
||||||
|
'C', x, y, x, y + (parentY - y) / 2, x + (parentX - x) / 2, y + (parentY - y) / 2, |
||||||
|
'C', x + (parentX - x) / 2, y + (parentY - y) / 2, parentX, parentY - (parentY - y) / 2, parentX, parentY |
||||||
|
]) |
||||||
|
} |
||||||
|
} else { |
||||||
|
// vertical path ending at the bottom of the revisionGraph
|
||||||
|
path = revisionGraph.path([ |
||||||
|
'M', x, y, |
||||||
|
'V', graphBottom |
||||||
|
]) |
||||||
|
} |
||||||
|
|
||||||
|
path |
||||||
|
.attr({ |
||||||
|
stroke: colors[commit.space], |
||||||
|
'stroke-width': 1.5 |
||||||
|
}) |
||||||
|
.toBack() |
||||||
|
}) |
||||||
|
|
||||||
|
revisionDotOverlay = revisionGraph.circle(x, y, 10) |
||||||
|
revisionDotOverlay |
||||||
|
.attr({ |
||||||
|
fill: '#000', |
||||||
|
opacity: 0, |
||||||
|
cursor: 'pointer', |
||||||
|
href: commit.href |
||||||
|
}) |
||||||
|
|
||||||
|
if (commit.refs !== null && commit.refs.length > 0) { |
||||||
|
title = document.createElementNS(revisionGraph.canvas.namespaceURI, 'title') |
||||||
|
title.appendChild(document.createTextNode(commit.refs)) |
||||||
|
revisionDotOverlay.node.appendChild(title) |
||||||
|
} |
||||||
|
|
||||||
|
top.push(revisionDotOverlay) |
||||||
|
}) |
||||||
|
|
||||||
|
top.toFront() |
||||||
|
} |
||||||
|
|
||||||
|
$(function () { |
||||||
|
'use strict' |
||||||
|
|
||||||
|
if (window.drawRevisionGraph) { |
||||||
|
// override Redmine's function
|
||||||
|
window.drawRevisionGraph = PurpleMine.RevisionGraph |
||||||
|
// make graph redraw itself
|
||||||
|
$(window).resize() |
||||||
|
} |
||||||
|
}) |
@ -0,0 +1,140 @@ |
|||||||
|
var PurpleMine = PurpleMine || {} // eslint-disable-line no-use-before-define
|
||||||
|
|
||||||
|
PurpleMine.SidebarToggler = (function () { |
||||||
|
'use strict' |
||||||
|
|
||||||
|
var instance |
||||||
|
var translations = { |
||||||
|
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: 'サイドバーの切り替え' |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function SidebarToggler () { |
||||||
|
if (instance) { |
||||||
|
return instance |
||||||
|
} |
||||||
|
|
||||||
|
instance = this |
||||||
|
|
||||||
|
this.sidebarVisible = true |
||||||
|
this.sidebarHiding = null |
||||||
|
this.$toggler = null |
||||||
|
this.$header = $('#header') |
||||||
|
this.$main = $('#main') |
||||||
|
this.$sidebar = $('#sidebar') |
||||||
|
this.lang = document.documentElement.lang |
||||||
|
|
||||||
|
if (typeof translations[this.lang] === 'undefined') { |
||||||
|
this.lang = 'en' |
||||||
|
} |
||||||
|
|
||||||
|
this._ = translations[this.lang] |
||||||
|
|
||||||
|
handleSidebar() |
||||||
|
} |
||||||
|
|
||||||
|
function handleSidebar () { |
||||||
|
if (window.localStorage) { |
||||||
|
instance.sidebarVisible = |
||||||
|
localStorage.getItem('PurpleMine:sidebarHidden') === null |
||||||
|
} |
||||||
|
|
||||||
|
if ( |
||||||
|
instance.$sidebar.length > 0 && |
||||||
|
instance.$main.hasClass('nosidebar') === false |
||||||
|
) { |
||||||
|
buildButton() |
||||||
|
bindKeyHandler() |
||||||
|
|
||||||
|
if (instance.sidebarVisible === false) { |
||||||
|
instance.hideSidebar(true) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function bindKeyHandler () { |
||||||
|
var body = document.getElementsByTagName('body')[0] |
||||||
|
|
||||||
|
window.onkeydown = function (event) { |
||||||
|
if ( |
||||||
|
body === event.target && |
||||||
|
event.keyCode === 83 && // "s"
|
||||||
|
event.ctrlKey === false && |
||||||
|
event.altKey === false && |
||||||
|
event.shiftKey === false |
||||||
|
) { |
||||||
|
instance.toggleSidebar() |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function buildButton () { |
||||||
|
var togglerClass = 'sidebar-toggler' |
||||||
|
var togglerHtml = '<a href="javascript:;" class="' + |
||||||
|
togglerClass + |
||||||
|
'" title="' + |
||||||
|
instance._.toggler + |
||||||
|
'"></a>' |
||||||
|
instance.$toggler = $(togglerHtml) |
||||||
|
|
||||||
|
instance.$header.append(instance.$toggler) |
||||||
|
instance.$toggler.on('click', instance.toggleSidebar) |
||||||
|
} |
||||||
|
|
||||||
|
SidebarToggler.prototype.toggleSidebar = function () { |
||||||
|
if (instance.sidebarVisible) { |
||||||
|
instance.hideSidebar() |
||||||
|
} else { |
||||||
|
instance.showSidebar() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
SidebarToggler.prototype.hideSidebar = function (immediate) { |
||||||
|
if (immediate === true) { |
||||||
|
this.$sidebar.addClass('sidebar-hiding sidebar-hidden') |
||||||
|
} else { |
||||||
|
this.$sidebar.addClass('sidebar-hiding') |
||||||
|
this.sidebarHiding = setTimeout(function sidebarTimeout () { |
||||||
|
instance.$sidebar.addClass('sidebar-hidden') |
||||||
|
}, 500) |
||||||
|
} |
||||||
|
|
||||||
|
this.$toggler.addClass('sidebar-hidden') |
||||||
|
this.sidebarVisible = false |
||||||
|
|
||||||
|
if (window.localStorage) { |
||||||
|
localStorage.setItem('PurpleMine:sidebarHidden', 'x') |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
SidebarToggler.prototype.showSidebar = function () { |
||||||
|
clearTimeout(this.sidebarHiding) |
||||||
|
|
||||||
|
instance.$sidebar.removeClass('sidebar-hidden') |
||||||
|
setTimeout(function sidebarTimeout () { |
||||||
|
instance.$sidebar.removeClass('sidebar-hiding') |
||||||
|
}, 50) |
||||||
|
|
||||||
|
this.$toggler.removeClass('sidebar-hidden') |
||||||
|
this.sidebarVisible = true |
||||||
|
|
||||||
|
if (window.localStorage) { |
||||||
|
localStorage.removeItem('PurpleMine:sidebarHidden') |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return SidebarToggler |
||||||
|
}()) |
@ -0,0 +1,9 @@ |
|||||||
|
$(function () { |
||||||
|
/* global PurpleMine */ |
||||||
|
'use strict' |
||||||
|
|
||||||
|
/* eslint-disable no-new */ |
||||||
|
new PurpleMine.SidebarToggler() |
||||||
|
new PurpleMine.HistoryTabs() |
||||||
|
new PurpleMine.MenuCollapse() |
||||||
|
}) |
@ -0,0 +1,4 @@ |
|||||||
|
// Functions |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
@import "functions/parse-length"; |
@ -0,0 +1,13 @@ |
|||||||
|
// Mixins |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
@import "mixins/buttons"; |
||||||
|
@import "mixins/center-block"; |
||||||
|
@import "mixins/clearfix"; |
||||||
|
@import "mixins/forms"; |
||||||
|
@import "mixins/image"; |
||||||
|
@import "mixins/text-overflow"; |
||||||
|
|
||||||
|
@import "mixins/issues"; |
||||||
|
@import "mixins/link-variant"; |
||||||
|
@import "mixins/shadows"; |
@ -0,0 +1,854 @@ |
|||||||
|
@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; |
||||||
|
$clean-issues: true !default; |
||||||
|
$color-trackers: true !default; |
||||||
|
$color-status: true !default; |
||||||
|
$color-priorities: false !default; |
||||||
|
$priority-icon: true !default; |
||||||
|
$use-gravatars: 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 |
||||||
|
// |
||||||
|
|
||||||
|
$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; |
||||||
|
|
||||||
|
$white: #fff !default; |
||||||
|
$black: #000 !default; |
||||||
|
$gray: hsl(hue($indigo), 20%, 85%) !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; |
||||||
|
|
||||||
|
@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: $white !default; |
||||||
|
$text-color: $gray-800 !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-700 !default; |
||||||
|
$link-color-project-closed: $gray-700 !default; |
||||||
|
$link-color-user-locked: $gray-700 !default; |
||||||
|
|
||||||
|
|
||||||
|
//== Typography |
||||||
|
// |
||||||
|
|
||||||
|
$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-base: $font-family-sans-serif !default; |
||||||
|
$font-weight-normal: normal !default; |
||||||
|
$font-weight-semi-bold: 500 !default; |
||||||
|
$font-weight-bold: 600 !default; |
||||||
|
|
||||||
|
$font-size-base: 14px !default; |
||||||
|
$font-size-large: 1.285em !default; |
||||||
|
$font-size-large-px: 18px !default; |
||||||
|
$font-size-small-unitless: .86 !default; |
||||||
|
$font-size-small: $font-size-small-unitless * 1em !default; |
||||||
|
$font-size-small-px: floor($font-size-small-unitless * $font-size-base) !default; |
||||||
|
|
||||||
|
$font-size-h1: 2.25em !default; |
||||||
|
$font-size-h2: 1.75em !default; |
||||||
|
$font-size-h3: 1.5em !default; |
||||||
|
$font-size-h4: 1.286em !default; |
||||||
|
$font-size-h5: 1em !default; |
||||||
|
$font-size-h6: 1em !default; |
||||||
|
|
||||||
|
$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: 600 !default; |
||||||
|
$headings-line-height: 1.4 !default; |
||||||
|
$headings-anchor-color: $gray-400 !default; |
||||||
|
$headings-anchor-color-active: $gray-600 !default; |
||||||
|
|
||||||
|
|
||||||
|
//== Wiki |
||||||
|
// |
||||||
|
|
||||||
|
$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: shade($toc-active-link, 700) !default; |
||||||
|
$toc-active-border: $link-color !default; |
||||||
|
|
||||||
|
|
||||||
|
//== Components |
||||||
|
// |
||||||
|
|
||||||
|
$padding-base-vertical: 6px !default; |
||||||
|
$padding-base-horizontal: 12px !default; |
||||||
|
$padding-large-vertical: 10px !default; |
||||||
|
$padding-large-horizontal: 16px !default; |
||||||
|
$padding-small-vertical: 5px !default; |
||||||
|
$padding-small-horizontal: 10px !default; |
||||||
|
|
||||||
|
$padding-side: 20px !default; |
||||||
|
$padding-wiki: 20px !default; |
||||||
|
|
||||||
|
$border-radius-base: 3px !default; |
||||||
|
$border-radius-large: 4px !default; |
||||||
|
$border-radius-small: 2px !default; |
||||||
|
|
||||||
|
$hr-border: $gray-600 !default; |
||||||
|
$abbr-border-color: $gray-600 !default; |
||||||
|
$blockquote-border-color: rgba($black, .15) !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; |
||||||
|
$component-active-border: $brand-primary !default; |
||||||
|
|
||||||
|
$font-size-list: .92em !default; |
||||||
|
|
||||||
|
$transition-time: 50ms !default; |
||||||
|
$transition-time-long: 150ms !default; |
||||||
|
|
||||||
|
$collapsible-animation-time: 300ms !default; |
||||||
|
$collapsible-max-height: 10000px !default; |
||||||
|
|
||||||
|
|
||||||
|
//== Tables |
||||||
|
// |
||||||
|
|
||||||
|
$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 !default; |
||||||
|
$table-list-color-odd-rows: true !default; |
||||||
|
$table-list-color-even-rows: false !default; |
||||||
|
$table-list-highlight-rows: true !default; |
||||||
|
|
||||||
|
$table-bg: transparent !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: $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-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-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 |
||||||
|
// |
||||||
|
|
||||||
|
$tracker-inline-padding: 1px 5px !default; |
||||||
|
$tracker-list-padding: 0 6px !default; |
||||||
|
|
||||||
|
$tracker-default-bg: $gray-700 !default; |
||||||
|
$tracker-default-text: $white !default; |
||||||
|
|
||||||
|
$tracker-default-colors-map: ( |
||||||
|
1: ( |
||||||
|
background: $red, |
||||||
|
color: $white |
||||||
|
), |
||||||
|
2: ( |
||||||
|
background: $blue, |
||||||
|
color: $white |
||||||
|
), |
||||||
|
3: ( |
||||||
|
background: $green, |
||||||
|
color: $white |
||||||
|
), |
||||||
|
4: ( |
||||||
|
background: $purple, |
||||||
|
color: $white |
||||||
|
), |
||||||
|
5: ( |
||||||
|
background: $orange, |
||||||
|
color: $white |
||||||
|
), |
||||||
|
6: ( |
||||||
|
background: $teal, |
||||||
|
color: $white |
||||||
|
), |
||||||
|
7: ( |
||||||
|
background: $indigo, |
||||||
|
color: $white |
||||||
|
) |
||||||
|
) !default; |
||||||
|
$tracker-custom-colors-map: () !default; |
||||||
|
$tracker-colors-map: map-merge($tracker-default-colors-map, $tracker-custom-colors-map); |
||||||
|
|
||||||
|
|
||||||
|
//== Diffs |
||||||
|
// |
||||||
|
|
||||||
|
$diff-out-bg: saturate(shade($red, 100), 50%) !default; |
||||||
|
$diff-out-bg-light: rgba($diff-out-bg, .4) !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: 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-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 |
||||||
|
// |
||||||
|
|
||||||
|
$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-900 !default; |
||||||
|
$btn-default-bg: $gray-100 !default; |
||||||
|
$btn-default-border: $gray-500 !default; |
||||||
|
$btn-default-icon-color: $gray-700 !default; |
||||||
|
|
||||||
|
$btn-primary-color: $white !default; |
||||||
|
$btn-primary-bg: $blue !default; |
||||||
|
$btn-primary-border: $btn-primary-bg !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: 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: $white !default; |
||||||
|
$input-bg-disabled: $gray-300 !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: 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; |
||||||
|
|
||||||
|
$input-height-base: ($line-height-computed + ($input-padding-vertical * 2) + 2) !default; |
||||||
|
|
||||||
|
$label-width: 160px !default; |
||||||
|
$label-wide-width: 280px !default; |
||||||
|
$label-space: 10px !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: 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; |
||||||
|
$header-link: $brand-text !default; |
||||||
|
$header-root: $brand-accent !default; |
||||||
|
$header-padding-vertical: 10px !default; |
||||||
|
$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 * .5) !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: $gray-50; |
||||||
|
|
||||||
|
|
||||||
|
//== Pagination |
||||||
|
// |
||||||
|
|
||||||
|
$pagination-padding-vertical: $btn-padding-vertical !default; |
||||||
|
$pagination-padding-horizontal: 10px !default; |
||||||
|
|
||||||
|
$pagination-color: $gray-900 !default; |
||||||
|
$pagination-bg: $gray-200 !default; |
||||||
|
$pagination-border: $gray-200 !default; |
||||||
|
|
||||||
|
$pagination-hover-color: $gray-900 !default; |
||||||
|
$pagination-hover-bg: $gray-300 !default; |
||||||
|
$pagination-hover-border: $gray-300 !default; |
||||||
|
|
||||||
|
$pagination-active-color: $brand-text !default; |
||||||
|
$pagination-active-bg: $brand-primary !default; |
||||||
|
$pagination-active-border: $brand-primary !default; |
||||||
|
|
||||||
|
$pagination-inactive-color: $gray-500 !default; |
||||||
|
$pagination-inactive-bg: $gray-50 !default; |
||||||
|
$pagination-inactive-border: $gray-100 !default; |
||||||
|
|
||||||
|
|
||||||
|
//== Tabs |
||||||
|
// |
||||||
|
|
||||||
|
$tab-padding-vertical: 5px !default; |
||||||
|
$tab-padding-horizontal: 8px !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; |
||||||
|
$tab-active-border: $tab-border !default; |
||||||
|
|
||||||
|
|
||||||
|
//== Content and sidebar |
||||||
|
// |
||||||
|
|
||||||
|
$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-200 !default; |
||||||
|
$sidebar-link-hover-text: $gray-900 !default; |
||||||
|
$sidebar-link-active-bg: $body-bg !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: shade($green, 400) !default; |
||||||
|
$flash-success-border: shade($green, 500) !default; |
||||||
|
$flash-success-text: $white !default; |
||||||
|
$flash-success-link: $white !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-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-height: 12px !default; |
||||||
|
$progress-bg: rgba($gray-500, .5) !default; |
||||||
|
$progress-bar-bg: $brand-primary !default; |
||||||
|
$progress-bar-success-bg: $brand-success !default; |
||||||
|
$progress-bar-danger-bg: $brand-danger !default; |
||||||
|
$progress-bar-info-bg: $brand-info !default; |
||||||
|
|
||||||
|
|
||||||
|
//== Panels |
||||||
|
// |
||||||
|
|
||||||
|
$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: $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($black, .07), |
||||||
|
0 3px 8px rgba($black, .04) !default; |
||||||
|
|
||||||
|
|
||||||
|
//== Tooltips |
||||||
|
// |
||||||
|
|
||||||
|
$tooltip-bg: $white !default; |
||||||
|
$tooltip-border-width: 0 !default; |
||||||
|
$tooltip-border: $gray-500 !default; |
||||||
|
$tooltip-text: $gray-800 !default; |
||||||
|
$tooltip-link: $link-color !default; |
||||||
|
|
||||||
|
|
||||||
|
//== Issue |
||||||
|
// |
||||||
|
|
||||||
|
$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.75 !default; |
||||||
|
|
||||||
|
$issue-attribute-padding-v: 3px !default; |
||||||
|
$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: 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; |
||||||
|
|
||||||
|
$screen-md: 992px !default; |
||||||
|
$screen-md-min: $screen-md !default; |
||||||
|
|
||||||
|
$screen-lg: 1200px !default; |
||||||
|
$screen-lg-min: $screen-lg !default; |
||||||
|
|
||||||
|
$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); |
@ -0,0 +1,54 @@ |
|||||||
|
@import "custom-variables"; |
||||||
|
@import "variables"; |
||||||
|
@import "functions"; |
||||||
|
@import "mixins"; |
||||||
|
|
||||||
|
@import "lib/normalize"; |
||||||
|
@import "lib/font-awesome"; |
||||||
|
|
||||||
|
|
||||||
|
//== Redmine's core elements |
||||||
|
// |
||||||
|
|
||||||
|
@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"; |
||||||
|
@import "components/issue"; |
||||||
|
@import "components/login"; |
||||||
|
@import "components/admin"; |
||||||
|
@import "components/coderay"; |
||||||
|
@import "components/rouge"; |
||||||
|
@import "components/gantt"; |
||||||
|
@import "components/calendar"; |
||||||
|
@import "components/progress"; |
||||||
|
@import "components/wiki"; |
||||||
|
@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"; |
||||||
|
|
||||||
|
|
||||||
|
//== Tweaks for plugins |
||||||
|
// |
||||||
|
|
||||||
|
@import "components/plugins"; |
||||||
|
|
||||||
|
|
||||||
|
//== Built-in JavaScript plugins |
||||||
|
// |
||||||
|
|
||||||
|
@import "javascripts/sidebar-toggler"; |
@ -0,0 +1,149 @@ |
|||||||
|
// |
||||||
|
// Admin |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
#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; |
||||||
|
padding: 0; |
||||||
|
} |
||||||
|
|
||||||
|
li { |
||||||
|
padding: ($sidebar-padding-vertical + 1px) ($sidebar-padding-horizontal + 3px); |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
display: inline-block; |
||||||
|
padding-left: 5px + $icon-width; |
||||||
|
background-position: 0 center; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Groups |
||||||
|
// |
||||||
|
|
||||||
|
table.members, |
||||||
|
table.memberships { |
||||||
|
td.roles { |
||||||
|
width: 45%; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Permissions |
||||||
|
// |
||||||
|
|
||||||
|
table.permissions { |
||||||
|
td.role { |
||||||
|
color: $gray-700; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
text-align: center; |
||||||
|
vertical-align: bottom; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Workflows |
||||||
|
// |
||||||
|
|
||||||
|
.controller-workflows { |
||||||
|
table.list, |
||||||
|
fieldset.collapsible { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
table.transitions { |
||||||
|
td.enabled { |
||||||
|
background: $state-success; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#workflow_copy_form select { |
||||||
|
width: 200px; |
||||||
|
} |
||||||
|
|
||||||
|
#workflow_form table select { |
||||||
|
width: 90%; |
||||||
|
min-width: 60px; |
||||||
|
} |
||||||
|
|
||||||
|
table.fields_permissions { |
||||||
|
td.readonly { |
||||||
|
background: $gray-600; |
||||||
|
} |
||||||
|
|
||||||
|
td.required { |
||||||
|
background: $state-danger; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Custom fields -> Issues -> Key values |
||||||
|
// |
||||||
|
|
||||||
|
#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; |
||||||
|
} |
||||||
|
|
||||||
|
label input { |
||||||
|
vertical-align: baseline; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Settings labels |
||||||
|
// |
||||||
|
|
||||||
|
fieldset.settings label { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Settings -> Notifications |
||||||
|
// |
||||||
|
|
||||||
|
fieldset#notified_events { |
||||||
|
.parent { |
||||||
|
padding-left: 20px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Settings -> Repositories |
||||||
|
// |
||||||
|
|
||||||
|
.settings.enabled_scm { |
||||||
|
table { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
td.scm_name { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
@ -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; |
||||||
|
} |
@ -0,0 +1,188 @@ |
|||||||
|
// |
||||||
|
// Base styles |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
html { |
||||||
|
overflow-y: scroll; |
||||||
|
tab-size: 4; |
||||||
|
} |
||||||
|
|
||||||
|
body { |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
background-color: $body-bg; |
||||||
|
color: $text-color; |
||||||
|
font-family: $font-family-base; |
||||||
|
font-size: $font-size-base; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
line-height: $line-height-base; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
color: $link-color; |
||||||
|
text-decoration: none; |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus { |
||||||
|
color: $link-hover-color; |
||||||
|
text-decoration: $link-hover-decoration; |
||||||
|
} |
||||||
|
|
||||||
|
&.issue.closed { |
||||||
|
color: $link-color-issue-closed; |
||||||
|
text-decoration: $link-closed-decoration; |
||||||
|
} |
||||||
|
|
||||||
|
&.project.closed { |
||||||
|
color: $link-color-project-closed; |
||||||
|
} |
||||||
|
|
||||||
|
&.user.locked { |
||||||
|
color: $link-color-user-locked; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// 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; |
||||||
|
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; |
||||||
|
font-weight: $font-weight-semi-bold; |
||||||
|
line-height: $line-height-large; |
||||||
|
|
||||||
|
img { |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
h3 { |
||||||
|
margin-top: 0; |
||||||
|
margin-bottom: $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: $font-weight-semi-bold; |
||||||
|
line-height: $line-height-base; |
||||||
|
} |
||||||
|
|
||||||
|
p { |
||||||
|
margin: 0 0 ($line-height-computed * .5); |
||||||
|
} |
||||||
|
|
||||||
|
small { |
||||||
|
font-size: $font-size-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 * .5); |
||||||
|
padding-left: 1.5em; |
||||||
|
|
||||||
|
ul, |
||||||
|
ol { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
dl { |
||||||
|
margin-top: 0; |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
} |
||||||
|
|
||||||
|
dt { |
||||||
|
margin-top: $line-height-computed; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
dd { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
margin-left: $line-height-computed; |
||||||
|
} |
||||||
|
|
||||||
|
code, |
||||||
|
kbd, |
||||||
|
pre, |
||||||
|
samp { |
||||||
|
font-family: $font-family-monospace; |
||||||
|
font-size: 1em; |
||||||
|
} |
||||||
|
|
||||||
|
hr { |
||||||
|
margin-top: $line-height-computed; |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
border: 0; |
||||||
|
border-top: 1px solid $hr-border; |
||||||
|
|
||||||
|
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 * .25) $padding-large-horizontal; |
||||||
|
border-left: 4px solid $blockquote-border-color; |
||||||
|
|
||||||
|
> :first-child { |
||||||
|
margin-top: 0; |
||||||
|
} |
||||||
|
|
||||||
|
> :last-child { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.clear { |
||||||
|
@extend %clearfix; |
||||||
|
} |
@ -0,0 +1,300 @@ |
|||||||
|
// |
||||||
|
// Buttons |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
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: |
||||||
|
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); |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus { |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
&.disabled, |
||||||
|
&[disabled], |
||||||
|
fieldset[disabled] & { |
||||||
|
opacity: .65; |
||||||
|
box-shadow: none; |
||||||
|
pointer-events: none; // Future-proof disabling of clicks |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Form buttons layout |
||||||
|
// |
||||||
|
|
||||||
|
form { |
||||||
|
input[type="submit"] { |
||||||
|
margin-right: 2px; |
||||||
|
|
||||||
|
+ input { |
||||||
|
@include button-variant($btn-success-color, $btn-success-bg, $btn-success-border); |
||||||
|
} |
||||||
|
|
||||||
|
~ a { |
||||||
|
margin-right: 2px; |
||||||
|
|
||||||
|
+ a { |
||||||
|
margin-left: 2px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Repository's 'View differences' button |
||||||
|
// |
||||||
|
|
||||||
|
form[action*="repository/diff"] { |
||||||
|
margin-bottom: $line-height-computed * .5; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Forum and news message form buttons layout |
||||||
|
// |
||||||
|
|
||||||
|
#message-form, |
||||||
|
#news-form { |
||||||
|
#message_sticky, |
||||||
|
#message_locked { |
||||||
|
position: relative; |
||||||
|
top: 1px; |
||||||
|
margin-left: 5px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Button links |
||||||
|
// |
||||||
|
p.buttons, |
||||||
|
.other-formats > span, |
||||||
|
#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; |
||||||
|
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; |
||||||
|
color: $pagination-color; |
||||||
|
|
||||||
|
&:first-child { |
||||||
|
margin-left: 0; |
||||||
|
} |
||||||
|
|
||||||
|
&:last-child { |
||||||
|
margin-right: 0; |
||||||
|
} |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus { |
||||||
|
border-color: $pagination-hover-border; |
||||||
|
background-color: $pagination-hover-bg; |
||||||
|
color: $pagination-hover-color; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> span:not(.drdn) { |
||||||
|
border-color: $pagination-inactive-border; |
||||||
|
background-color: $pagination-inactive-bg; |
||||||
|
color: $pagination-inactive-color; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== 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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Action buttons group |
||||||
|
// |
||||||
|
|
||||||
|
p.buttons { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
|
||||||
|
a { |
||||||
|
line-height: $line-height-base; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Export actions |
||||||
|
// |
||||||
|
|
||||||
|
.other-formats { |
||||||
|
margin: $line-height-computed 0 0; |
||||||
|
text-align: 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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Query builder buttons |
||||||
|
// |
||||||
|
|
||||||
|
.query-columns { |
||||||
|
select { |
||||||
|
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); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Button for toggling multiselect (in filters) |
||||||
|
// |
||||||
|
|
||||||
|
a[data-expands], |
||||||
|
.toggle-multiselect { |
||||||
|
display: inline-block; |
||||||
|
position: relative; |
||||||
|
top: 3px; |
||||||
|
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; |
||||||
|
font-size: 0; |
||||||
|
vertical-align: top; |
||||||
|
cursor: pointer; |
||||||
|
user-select: none; |
||||||
|
@include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); |
||||||
|
|
||||||
|
&.icon-only::before { |
||||||
|
content: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
a[data-expands] { |
||||||
|
margin-right: 10px; |
||||||
|
|
||||||
|
> .toggle-multiselect { |
||||||
|
padding: 0; |
||||||
|
border: 0 none; |
||||||
|
background: transparent; |
||||||
|
} |
||||||
|
|
||||||
|
img { |
||||||
|
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))); |
||||||
|
} |
@ -0,0 +1,179 @@ |
|||||||
|
// |
||||||
|
// Calendar |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
table.cal { |
||||||
|
width: 100%; |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
border: 1px solid $table-border-color; |
||||||
|
|
||||||
|
thead th { |
||||||
|
width: 14%; |
||||||
|
padding: $table-condensed-cell-padding; |
||||||
|
background-color: $table-bg-active; |
||||||
|
|
||||||
|
&.week-number { |
||||||
|
width: auto; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
tbody tr { |
||||||
|
height: 100px; |
||||||
|
} |
||||||
|
|
||||||
|
td { |
||||||
|
padding: $table-condensed-cell-padding; |
||||||
|
border: 1px solid $table-border-color; |
||||||
|
font-size: $font-size-small; |
||||||
|
vertical-align: top; |
||||||
|
|
||||||
|
&.week-number { |
||||||
|
border: 0 none; |
||||||
|
background-color: $table-bg-active; |
||||||
|
font-size: 1em; |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
|
||||||
|
p.day-num { |
||||||
|
float: right; |
||||||
|
font-size: $font-size-large; |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
|
||||||
|
&.odd p.day-num { |
||||||
|
color: $gray-600; |
||||||
|
} |
||||||
|
|
||||||
|
&.nwday { |
||||||
|
background: $table-bg-accent; |
||||||
|
} |
||||||
|
|
||||||
|
&.today { |
||||||
|
background: $highlight-bg; |
||||||
|
|
||||||
|
p.day-num { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
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 { |
||||||
|
@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 { |
||||||
|
&::before { |
||||||
|
content: $fa-var-caret-left; |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
table.cal .starting.ending a, |
||||||
|
ul.cal .starting.ending a, |
||||||
|
p.cal.legend .starting.ending { |
||||||
|
&::before { |
||||||
|
content: $fa-var-square; |
||||||
|
transform: scale(.6) rotate(45deg); |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
p.cal.legend { |
||||||
|
span { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,362 @@ |
|||||||
|
// |
||||||
|
// Syntax highlight - CodeRay |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
.syntaxhl { |
||||||
|
div { |
||||||
|
display: inline; |
||||||
|
} |
||||||
|
|
||||||
|
.line-numbers { |
||||||
|
margin: 0 5px 0 0; |
||||||
|
padding: 2px 4px; |
||||||
|
background-color: #eee; |
||||||
|
} |
||||||
|
|
||||||
|
.code pre { |
||||||
|
overflow: auto; |
||||||
|
} |
||||||
|
|
||||||
|
.debug { |
||||||
|
// stylelint-disable declaration-no-important |
||||||
|
background: #00f !important; |
||||||
|
color: #fff !important; |
||||||
|
} |
||||||
|
|
||||||
|
.annotation { |
||||||
|
color: #007; |
||||||
|
} |
||||||
|
|
||||||
|
.attribute-name { |
||||||
|
color: #b48; |
||||||
|
} |
||||||
|
|
||||||
|
.attribute-value { |
||||||
|
color: #700; |
||||||
|
} |
||||||
|
|
||||||
|
.binary { |
||||||
|
color: #509; |
||||||
|
} |
||||||
|
|
||||||
|
.char { |
||||||
|
color: #d20; |
||||||
|
|
||||||
|
.content { |
||||||
|
color: #d20; |
||||||
|
} |
||||||
|
|
||||||
|
.delimiter { |
||||||
|
color: #710; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.class { |
||||||
|
color: #795da3; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.class-variable { |
||||||
|
color: #369; |
||||||
|
} |
||||||
|
|
||||||
|
.color { |
||||||
|
color: #0a0; |
||||||
|
} |
||||||
|
|
||||||
|
.comment { |
||||||
|
color: #969896; |
||||||
|
|
||||||
|
.char, |
||||||
|
.delimiter { |
||||||
|
color: #969896; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.complex { |
||||||
|
color: #a08; |
||||||
|
} |
||||||
|
|
||||||
|
.constant { |
||||||
|
color: #795da3; |
||||||
|
} |
||||||
|
|
||||||
|
.decorator { |
||||||
|
color: #b0b; |
||||||
|
} |
||||||
|
|
||||||
|
.definition { |
||||||
|
color: #099; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.delimiter { |
||||||
|
color: #000; |
||||||
|
} |
||||||
|
|
||||||
|
.directive { |
||||||
|
color: #088; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.doc { |
||||||
|
color: #970; |
||||||
|
} |
||||||
|
|
||||||
|
.doc-string { |
||||||
|
color: #d42; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.doctype { |
||||||
|
color: #34b; |
||||||
|
} |
||||||
|
|
||||||
|
.entity { |
||||||
|
color: #800; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.error { |
||||||
|
background-color: #faa; |
||||||
|
color: #f00; |
||||||
|
} |
||||||
|
|
||||||
|
.escape { |
||||||
|
color: #666; |
||||||
|
} |
||||||
|
|
||||||
|
.exception { |
||||||
|
color: #c00; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.float { |
||||||
|
color: #06d; |
||||||
|
} |
||||||
|
|
||||||
|
.function { |
||||||
|
color: #06b; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.global-variable { |
||||||
|
color: #d70; |
||||||
|
} |
||||||
|
|
||||||
|
.hex { |
||||||
|
color: #02b; |
||||||
|
} |
||||||
|
|
||||||
|
.imaginary { |
||||||
|
color: #f00; |
||||||
|
} |
||||||
|
|
||||||
|
.include { |
||||||
|
color: #b44; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.inline { |
||||||
|
background-color: rgba(#000, .05); |
||||||
|
color: #000; |
||||||
|
} |
||||||
|
|
||||||
|
.inline-delimiter { |
||||||
|
color: #666; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.instance-variable { |
||||||
|
color: #33b; |
||||||
|
} |
||||||
|
|
||||||
|
.integer { |
||||||
|
color: #0086b3; |
||||||
|
} |
||||||
|
|
||||||
|
.key { |
||||||
|
color: #606; |
||||||
|
|
||||||
|
.char { |
||||||
|
color: #60f; |
||||||
|
} |
||||||
|
|
||||||
|
.delimiter { |
||||||
|
color: #404; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.keyword { |
||||||
|
color: #b3113e; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.label { |
||||||
|
color: #970; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.local-variable { |
||||||
|
color: #369; |
||||||
|
} |
||||||
|
|
||||||
|
.namespace { |
||||||
|
color: #707; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.octal { |
||||||
|
color: #40e; |
||||||
|
} |
||||||
|
|
||||||
|
.predefined { |
||||||
|
color: #b21; |
||||||
|
} |
||||||
|
|
||||||
|
.predefined-constant { |
||||||
|
color: #009595; |
||||||
|
} |
||||||
|
|
||||||
|
.predefined-type { |
||||||
|
color: #0a5; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.preprocessor { |
||||||
|
color: #579; |
||||||
|
} |
||||||
|
|
||||||
|
.pseudo-class { |
||||||
|
color: #00c; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.regexp { |
||||||
|
background-color: hsla(300, 100%, 50%, .06); |
||||||
|
|
||||||
|
.content { |
||||||
|
color: #808; |
||||||
|
} |
||||||
|
|
||||||
|
.delimiter { |
||||||
|
color: #404; |
||||||
|
} |
||||||
|
|
||||||
|
.modifier { |
||||||
|
color: #c2c; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.reserved { |
||||||
|
color: #080; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.shell { |
||||||
|
background-color: hsla(120, 100%, 50%, .06); |
||||||
|
|
||||||
|
.content { |
||||||
|
color: #2b2; |
||||||
|
} |
||||||
|
|
||||||
|
.delimiter { |
||||||
|
color: #161; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.string { |
||||||
|
.char, |
||||||
|
.content, |
||||||
|
.delimiter, |
||||||
|
.modifier { |
||||||
|
color: #df5000; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.symbol { |
||||||
|
color: #d33; |
||||||
|
|
||||||
|
.content, |
||||||
|
.delimiter { |
||||||
|
color: #d33; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.tag { |
||||||
|
color: #070; |
||||||
|
} |
||||||
|
|
||||||
|
.type { |
||||||
|
color: #339; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.value { |
||||||
|
color: #088; |
||||||
|
} |
||||||
|
|
||||||
|
.variable { |
||||||
|
color: #037; |
||||||
|
} |
||||||
|
|
||||||
|
.insert { |
||||||
|
background: hsla(120, 100%, 50%, .12); |
||||||
|
|
||||||
|
.insert { |
||||||
|
background: transparent; |
||||||
|
color: #0c0; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.eyecatcher { |
||||||
|
margin: -1px; |
||||||
|
border: 1px solid hsla(120, 100%, 25%, .5); |
||||||
|
border-top: 0 none; |
||||||
|
border-bottom-left-radius: 5px; |
||||||
|
border-bottom-right-radius: 5px; |
||||||
|
background-color: hsla(120, 100%, 50%, .2); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.delete { |
||||||
|
background: hsla(0, 100%, 50%, .12); |
||||||
|
|
||||||
|
.delete { |
||||||
|
background: transparent; |
||||||
|
color: #c00; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.eyecatcher { |
||||||
|
margin: -1px; |
||||||
|
border: 1px solid hsla(0, 100%, 45%, .5); |
||||||
|
border-bottom: 0 none; |
||||||
|
border-top-left-radius: 5px; |
||||||
|
border-top-right-radius: 5px; |
||||||
|
background-color: hsla(0, 100%, 50%, .2); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.change { |
||||||
|
background: #007; |
||||||
|
color: #bbf; |
||||||
|
|
||||||
|
.change { |
||||||
|
color: #88f; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.head { |
||||||
|
background: #505; |
||||||
|
color: #f8f; |
||||||
|
|
||||||
|
.head { |
||||||
|
color: #f4f; |
||||||
|
} |
||||||
|
|
||||||
|
.filename { |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,397 @@ |
|||||||
|
#main { |
||||||
|
@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; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// |
||||||
|
// Main container |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
#content { |
||||||
|
padding: $padding-side; |
||||||
|
overflow-x: auto; // needed for drag & drop of enumerations |
||||||
|
|
||||||
|
@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}); |
||||||
|
} @else { |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// |
||||||
|
// Sidebar |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
#sidebar { |
||||||
|
#main & { |
||||||
|
padding: $padding-side $sidebar-padding-horizontal; |
||||||
|
} |
||||||
|
|
||||||
|
#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" { |
||||||
|
order: -1; |
||||||
|
} @else { |
||||||
|
order: 1; |
||||||
|
} |
||||||
|
} @else { |
||||||
|
width: $sidebar-width-computed; |
||||||
|
float: $sidebar-position; |
||||||
|
} |
||||||
|
|
||||||
|
@media screen and (min-width: 1px) { |
||||||
|
@if not $flexbox-layout { |
||||||
|
padding-bottom: $padding-side * 3; |
||||||
|
} |
||||||
|
|
||||||
|
@if $sidebar-position == "left" { |
||||||
|
border-right: 1px solid $sidebar-link-active-border; |
||||||
|
box-shadow: inset -9px 0 6px -6px rgba(0, 0, 0, .05); |
||||||
|
} @else { |
||||||
|
border-left: 1px solid $sidebar-link-active-border; |
||||||
|
box-shadow: inset 9px 0 6px -6px rgba(0, 0, 0, .05); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
h3 { |
||||||
|
margin-top: $line-height-computed * 1.5; |
||||||
|
} |
||||||
|
|
||||||
|
> h3:first-child, |
||||||
|
> form:first-child > h3 { |
||||||
|
margin-top: $line-height-computed * .25; |
||||||
|
} |
||||||
|
|
||||||
|
ul { |
||||||
|
&:nth-child(n) { |
||||||
|
margin: 0 0 ($line-height-computed * .5); |
||||||
|
padding: 0; |
||||||
|
|
||||||
|
@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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// 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; |
||||||
|
|
||||||
|
.page-tree__title { |
||||||
|
margin-left: 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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
li { |
||||||
|
> a:not(.icon-only) { |
||||||
|
padding-right: $sidebar-padding-horizontal * .5; |
||||||
|
padding-left: $sidebar-padding-horizontal * .5; |
||||||
|
|
||||||
|
@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" { |
||||||
|
border-radius: $border-radius-large 0 0 $border-radius-large; |
||||||
|
} @else { |
||||||
|
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; |
||||||
|
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, |
||||||
|
#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, |
||||||
|
#footer { |
||||||
|
width: $width-md; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-lg-min) { |
||||||
|
#top-menu, |
||||||
|
#header, |
||||||
|
#main-menu ul, |
||||||
|
#main, |
||||||
|
#footer { |
||||||
|
width: $width-lg; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#main-menu ul > li > a { |
||||||
|
padding: $main-menu-padding-vertical 1px; |
||||||
|
} |
||||||
|
} |
@ -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))); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -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; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,90 @@ |
|||||||
|
// |
||||||
|
// Flash & error messages |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
|
||||||
|
#errorExplanation, |
||||||
|
.flash, |
||||||
|
.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%; |
||||||
|
|
||||||
|
&::before { |
||||||
|
margin-left: -(8px + 16px); |
||||||
|
float: left; |
||||||
|
line-height: $line-height-computed; |
||||||
|
} |
||||||
|
|
||||||
|
> :last-child { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@mixin flash($color, $background, $border, $link, $icon) { |
||||||
|
border-color: $border; |
||||||
|
background-color: $background; |
||||||
|
color: $color; |
||||||
|
|
||||||
|
@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; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
color: $link; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.warning, |
||||||
|
.conflict, |
||||||
|
.nodata { |
||||||
|
@include flash($flash-warning-text, $flash-warning-bg, $flash-warning-border, $flash-warning-link, "warning"); |
||||||
|
} |
||||||
|
|
||||||
|
.flash.notice { |
||||||
|
@include flash($flash-success-text, $flash-success-bg, $flash-success-border, $flash-success-link, "true"); |
||||||
|
} |
||||||
|
|
||||||
|
#errorExplanation, |
||||||
|
.flash.error { |
||||||
|
@include flash($flash-error-text, $flash-error-bg, $flash-error-border, $flash-error-link, "exclamation"); |
||||||
|
} |
||||||
|
|
||||||
|
.nodata { |
||||||
|
padding-left: $padding-large-horizontal; |
||||||
|
text-align: center; |
||||||
|
|
||||||
|
&.nodata-left { |
||||||
|
&::before { |
||||||
|
float: left; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&::before { |
||||||
|
margin-left: 0; |
||||||
|
float: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#errorExplanation { |
||||||
|
h2, |
||||||
|
p { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,775 @@ |
|||||||
|
// |
||||||
|
// Forms |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
form { |
||||||
|
td { |
||||||
|
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-block; |
||||||
|
line-height: $input-height-base; |
||||||
|
vertical-align: top; |
||||||
|
|
||||||
|
label { |
||||||
|
line-height: inherit; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
button, |
||||||
|
input, |
||||||
|
select, |
||||||
|
textarea { |
||||||
|
box-sizing: border-box; |
||||||
|
font-family: inherit; |
||||||
|
font-size: $font-size-base; |
||||||
|
line-height: $line-height-base; |
||||||
|
} |
||||||
|
|
||||||
|
%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, |
||||||
|
textarea, |
||||||
|
input[type="datetime"], |
||||||
|
input[type="datetime-local"], |
||||||
|
input[type="date"], |
||||||
|
input[type="month"], |
||||||
|
input[type="time"], |
||||||
|
input[type="week"], |
||||||
|
input[type="number"], |
||||||
|
input[type="url"], |
||||||
|
input[type="tel"], |
||||||
|
input[type="color"], |
||||||
|
input[type="search"], |
||||||
|
input[type="email"], |
||||||
|
input[type="text"], |
||||||
|
input[type="password"] { |
||||||
|
@extend %form-field; |
||||||
|
@include form-control-focus; |
||||||
|
@include placeholder; |
||||||
|
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); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
textarea { |
||||||
|
height: auto; |
||||||
|
resize: vertical; |
||||||
|
|
||||||
|
&.text_cf { |
||||||
|
width: 100%; |
||||||
|
resize: vertical; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
input[type="search"] { |
||||||
|
-webkit-appearance: none; // stylelint-disable-line property-no-vendor-prefix |
||||||
|
} |
||||||
|
|
||||||
|
input[type="radio"], |
||||||
|
input[type="checkbox"] { |
||||||
|
margin: 4px 3px 0 5px; |
||||||
|
margin-top: 1px \9; // IE8-9 |
||||||
|
line-height: normal; |
||||||
|
vertical-align: top; |
||||||
|
} |
||||||
|
|
||||||
|
input[type="file"] { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
input[type="range"] { |
||||||
|
display: block; |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
input { |
||||||
|
&.autocomplete { |
||||||
|
@extend %image-aci; |
||||||
|
padding-right: 30px; |
||||||
|
background-repeat: no-repeat; |
||||||
|
background-position: right center; |
||||||
|
|
||||||
|
&.ajax-loading { |
||||||
|
background-image: url("../images/preloader.gif"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.string_cf, |
||||||
|
&.link_cf { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
select { |
||||||
|
&[multiple], |
||||||
|
&[size] { |
||||||
|
height: auto; |
||||||
|
min-height: $input-height-base; |
||||||
|
} |
||||||
|
|
||||||
|
&[size="1"] { |
||||||
|
height: $input-height-base; |
||||||
|
} |
||||||
|
|
||||||
|
option[disabled] { |
||||||
|
color: $gray-400; |
||||||
|
} |
||||||
|
|
||||||
|
&.expandable { |
||||||
|
vertical-align: top; |
||||||
|
} |
||||||
|
|
||||||
|
&.bool_cf { |
||||||
|
width: auto !important; // stylelint-disable-line declaration-no-important |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Browser hacks: unfortunately every browser has different capabilities when |
||||||
|
// it comes to styling <select> and <option> tags. |
||||||
|
// |
||||||
|
|
||||||
|
// Mozilla Firefox |
||||||
|
|
||||||
|
@-moz-document url-prefix("") { |
||||||
|
select { |
||||||
|
&[multiple] { |
||||||
|
padding: 0; |
||||||
|
} |
||||||
|
|
||||||
|
option, |
||||||
|
optgroup::before { |
||||||
|
padding: $input-padding-vertical $input-padding-horizontal; |
||||||
|
border-bottom: 1px dotted $gray-400; |
||||||
|
} |
||||||
|
|
||||||
|
optgroup > option { |
||||||
|
padding-right: $input-padding-horizontal * 2; |
||||||
|
padding-left: $input-padding-horizontal * 2; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// Google Chrome and Safari |
||||||
|
|
||||||
|
@supports (-webkit-appearance: none) { |
||||||
|
select[multiple] { |
||||||
|
padding: 0; |
||||||
|
} |
||||||
|
|
||||||
|
// For some reason nested selectors will not work |
||||||
|
select[multiple] option { |
||||||
|
padding: $input-padding-vertical $input-padding-horizontal; |
||||||
|
border-bottom: 1px dotted $gray-400; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
select:-moz-focusring { |
||||||
|
color: transparent; |
||||||
|
text-shadow: 0 0 0 #000; |
||||||
|
} |
||||||
|
|
||||||
|
fieldset { |
||||||
|
min-width: 0; |
||||||
|
margin: 0; |
||||||
|
padding: ($line-height-computed * .5) 0; |
||||||
|
border: 0 none; |
||||||
|
border-top: 1px solid $legend-border-color; |
||||||
|
|
||||||
|
> p > label:first-child { |
||||||
|
margin-right: $label-space; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
legend { |
||||||
|
padding-right: 5px; |
||||||
|
color: $legend-color; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Required fields' asterisk |
||||||
|
// |
||||||
|
|
||||||
|
span.required { |
||||||
|
position: relative; |
||||||
|
top: 3px; |
||||||
|
margin-left: -.2em; |
||||||
|
color: $red; |
||||||
|
font-size: 1.5em; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
line-height: 0; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Field's hint |
||||||
|
// |
||||||
|
|
||||||
|
em.info { |
||||||
|
display: block; |
||||||
|
padding: 2px 0; |
||||||
|
color: $gray-700; |
||||||
|
font-size: $font-size-small; |
||||||
|
font-style: normal; |
||||||
|
line-height: $line-height-base; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Wiki editor |
||||||
|
// |
||||||
|
|
||||||
|
.wiki-edit { |
||||||
|
color: $wiki-text; |
||||||
|
font-family: $font-family-monospace; |
||||||
|
line-height: $wiki-line-height; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Tabular forms |
||||||
|
// |
||||||
|
|
||||||
|
.tabular { |
||||||
|
&.settings { |
||||||
|
p { |
||||||
|
padding-left: $label-wide-width + $label-space; |
||||||
|
} |
||||||
|
|
||||||
|
label { |
||||||
|
width: $label-wide-width; |
||||||
|
margin-left: -($label-wide-width + $label-space); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
p { |
||||||
|
@extend %clearfix; |
||||||
|
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, |
||||||
|
select { |
||||||
|
max-width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
textarea { |
||||||
|
display: block; |
||||||
|
width: 100%; |
||||||
|
resize: vertical; |
||||||
|
} |
||||||
|
|
||||||
|
span[title] { |
||||||
|
border-bottom: 1px dotted $gray-600; |
||||||
|
} |
||||||
|
|
||||||
|
label { |
||||||
|
width: $label-width; |
||||||
|
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; |
||||||
|
|
||||||
|
&.floating { |
||||||
|
width: 270px; |
||||||
|
margin-left: 0; |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
|
||||||
|
&.block, |
||||||
|
&.inline { |
||||||
|
display: block; |
||||||
|
width: auto; |
||||||
|
margin-left: 0; |
||||||
|
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 { |
||||||
|
display: inline-block; |
||||||
|
} |
||||||
|
|
||||||
|
&.role-visibility { |
||||||
|
padding-left: 34px; |
||||||
|
} |
||||||
|
|
||||||
|
> 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: $check-input-margin-horizontal; |
||||||
|
padding-left: $check-input-gutter; |
||||||
|
float: none; |
||||||
|
|
||||||
|
&:last-child { |
||||||
|
margin-right: 0; |
||||||
|
} |
||||||
|
|
||||||
|
> input { |
||||||
|
margin-left: -$check-input-gutter; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
input + & { |
||||||
|
padding-left: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
label.block { |
||||||
|
display: block; |
||||||
|
width: auto; |
||||||
|
|
||||||
|
> input { |
||||||
|
margin-right: 3px; |
||||||
|
margin-left: 3px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Hack: align description edit icon with label |
||||||
|
// |
||||||
|
|
||||||
|
label[for="issue_description"] + a { |
||||||
|
display: inline-block; |
||||||
|
|
||||||
|
img { |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Hack: better looking filter checkbox in sidebar in projects list |
||||||
|
// |
||||||
|
|
||||||
|
label[for="closed"] { |
||||||
|
margin-bottom: $line-height-computed * .5; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Input sizes |
||||||
|
// |
||||||
|
|
||||||
|
.wiki-edit, |
||||||
|
#principal_search, |
||||||
|
#issue_subject, |
||||||
|
#time_entry_comments, |
||||||
|
#content_comments, |
||||||
|
#user_search, |
||||||
|
#user_login, |
||||||
|
#user_firstname, |
||||||
|
#user_lastname, |
||||||
|
#user_mail, |
||||||
|
#my_account_form select, |
||||||
|
#user_form select, |
||||||
|
#user_identity_url, |
||||||
|
#custom_field_possible_values { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
@if $issue-subject-large { |
||||||
|
$input-padding-large-vertical: 8px; |
||||||
|
$input-padding-large-horizontal: 12px; |
||||||
|
$input-height-large: (ceil($font-size-large-px * $line-height-large) + ($input-padding-large-vertical * 2) + 2); |
||||||
|
|
||||||
|
label[for="issue_subject"] { |
||||||
|
padding-top: $input-padding-large-vertical; |
||||||
|
} |
||||||
|
|
||||||
|
#issue_subject { |
||||||
|
height: $input-height-large; |
||||||
|
padding: $input-padding-large-vertical $input-padding-large-horizontal; |
||||||
|
border-radius: $input-border-radius-large; |
||||||
|
font-size: $font-size-large; |
||||||
|
line-height: $line-height-large; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//== Add space below WYSIWYG |
||||||
|
// |
||||||
|
|
||||||
|
.jstEditor { |
||||||
|
margin-bottom: $line-height-computed * .5; |
||||||
|
} |
||||||
|
|
||||||
|
//== User form |
||||||
|
// |
||||||
|
|
||||||
|
#user_form { |
||||||
|
@extend %clearfix; |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
|
||||||
|
~ p { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Attachments |
||||||
|
// |
||||||
|
|
||||||
|
#attachments_fields, |
||||||
|
#existing-attachments, |
||||||
|
.attachments_fields { |
||||||
|
> span { |
||||||
|
display: block; |
||||||
|
margin-bottom: $line-height-computed * .25; |
||||||
|
} |
||||||
|
|
||||||
|
input { |
||||||
|
width: 21.5em; |
||||||
|
margin-right: .5em; |
||||||
|
margin-bottom: $line-height-computed * .25; |
||||||
|
|
||||||
|
&.filename { |
||||||
|
padding-left: $input-padding-horizontal + 16px; |
||||||
|
background-image: url("../../../images/attachment.png"); |
||||||
|
background-repeat: no-repeat; |
||||||
|
background-position: 4px center; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ajax-waiting input.filename { |
||||||
|
background-image: url("../../../images/hourglass.png"); |
||||||
|
} |
||||||
|
|
||||||
|
.ajax-loading input.filename { |
||||||
|
background-image: url("../../../images/loading.gif"); |
||||||
|
} |
||||||
|
|
||||||
|
div.ui-progressbar { |
||||||
|
display: inline-block; |
||||||
|
width: 100px; |
||||||
|
height: 14px; |
||||||
|
margin: 2px 0 -5px 8px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#add_attachment_form { |
||||||
|
p { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Issue form elements |
||||||
|
// |
||||||
|
|
||||||
|
#issue-form { |
||||||
|
fieldset { |
||||||
|
&:last-child { |
||||||
|
padding-bottom: 0; |
||||||
|
|
||||||
|
p { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.splitcontentleft, |
||||||
|
.splitcontentright { |
||||||
|
width: 100%; |
||||||
|
padding-right: 0; |
||||||
|
padding-left: 0; |
||||||
|
float: left; |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-sm-min) { |
||||||
|
width: auto; |
||||||
|
min-width: 36em; |
||||||
|
} |
||||||
|
|
||||||
|
textarea.text_cf, |
||||||
|
input.string_cf, |
||||||
|
input.link_cf, |
||||||
|
select { |
||||||
|
width: 90%; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.splitcontentleft { |
||||||
|
@media screen and (min-width: $screen-sm-min) { |
||||||
|
margin-right: $padding-side; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#issue_estimated_hours, |
||||||
|
#issue_done_ratio { |
||||||
|
width: 5.5em; |
||||||
|
min-width: 1em; |
||||||
|
padding-left: .2em; |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== #all_attributes > p[style] is targeting Redmine 2.x |
||||||
|
// |
||||||
|
|
||||||
|
#issue_is_private_wrap, |
||||||
|
#all_attributes > p[style] { |
||||||
|
margin-right: 0 !important; // stylelint-disable-line declaration-no-important |
||||||
|
margin-bottom: 0; |
||||||
|
padding-left: 0; |
||||||
|
float: right; |
||||||
|
|
||||||
|
input { |
||||||
|
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; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
#users_for_watcher, |
||||||
|
#watchers_inputs { |
||||||
|
display: block; |
||||||
|
max-height: $check-list-max-height; |
||||||
|
margin-bottom: $line-height-computed * .5; |
||||||
|
overflow: auto; |
||||||
|
|
||||||
|
label { |
||||||
|
@include check-list; |
||||||
|
} |
||||||
|
|
||||||
|
.gravatar { |
||||||
|
margin-right: $padding-small-vertical; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#watchers_inputs { |
||||||
|
max-width: 64em; |
||||||
|
columns: 18em 3; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== List of custom field values |
||||||
|
// |
||||||
|
|
||||||
|
.check_box_group { |
||||||
|
display: block; |
||||||
|
width: 90%; |
||||||
|
max-height: $check-list-max-height; |
||||||
|
overflow-y: auto; |
||||||
|
|
||||||
|
label { |
||||||
|
@include check-list; |
||||||
|
} |
||||||
|
|
||||||
|
@media screen and (min-width: $redmine-responsive-min) { |
||||||
|
// Boolean field displayed as inline radio buttons |
||||||
|
&.bool_cf { |
||||||
|
overflow: initial; |
||||||
|
|
||||||
|
label { |
||||||
|
display: inline-block; |
||||||
|
margin-right: $check-input-margin-horizontal; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Filters |
||||||
|
// |
||||||
|
|
||||||
|
fieldset#filters { |
||||||
|
table { |
||||||
|
td { |
||||||
|
vertical-align: top; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
td { |
||||||
|
&.field { |
||||||
|
padding-right: $table-cell-padding * 2; |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-sm-min) { |
||||||
|
min-width: 180px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.operator { |
||||||
|
min-width: 180px; |
||||||
|
padding-right: $table-cell-padding * 2; |
||||||
|
|
||||||
|
select { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.values { |
||||||
|
min-width: 130px; |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
select { |
||||||
|
min-width: 130px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.add-filter { |
||||||
|
padding-top: $table-condensed-cell-padding * 2; |
||||||
|
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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#filters-table { |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
#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 |
||||||
|
// |
||||||
|
|
||||||
|
label.no-css { |
||||||
|
width: auto; |
||||||
|
margin-left: 0; |
||||||
|
float: none; |
||||||
|
font-weight: inherit; |
||||||
|
line-height: inherit; |
||||||
|
text-align: left; |
||||||
|
} |
@ -0,0 +1,269 @@ |
|||||||
|
// |
||||||
|
// 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; |
||||||
|
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-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 { |
||||||
|
.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; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.task { |
||||||
|
position: absolute; |
||||||
|
height: 8px; |
||||||
|
margin: 2px 0 0; |
||||||
|
padding: 0; |
||||||
|
font-size: 11px; |
||||||
|
line-height: 16px; |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
&.label { |
||||||
|
width: 100%; |
||||||
|
margin-top: 0; |
||||||
|
|
||||||
|
&.project, |
||||||
|
&.version { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.parent { |
||||||
|
height: 3px; |
||||||
|
|
||||||
|
&.marker { |
||||||
|
&.starting { |
||||||
|
position: absolute; |
||||||
|
top: -1px; |
||||||
|
left: 0; |
||||||
|
width: 8px; |
||||||
|
height: 16px; |
||||||
|
margin-left: -4px; |
||||||
|
background: url("../../../images/task_parent_end.png") no-repeat 0 0; |
||||||
|
} |
||||||
|
|
||||||
|
&.ending { |
||||||
|
position: absolute; |
||||||
|
top: -1px; |
||||||
|
right: 0; |
||||||
|
width: 8px; |
||||||
|
height: 16px; |
||||||
|
margin-left: -4px; |
||||||
|
background: url("../../../images/task_parent_end.png") no-repeat 0 0; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.task_late { |
||||||
|
border: 1px solid darken($progress-bar-danger-bg, 10%); |
||||||
|
background-color: $progress-bar-danger-bg; |
||||||
|
} |
||||||
|
|
||||||
|
.task_done { |
||||||
|
border: 1px solid darken($progress-bar-success-bg, 10%); |
||||||
|
background-color: $progress-bar-success-bg; |
||||||
|
} |
||||||
|
|
||||||
|
.task_todo { |
||||||
|
border: 1px solid darken($progress-bg, 20%); |
||||||
|
background-color: $progress-bg; |
||||||
|
|
||||||
|
&.parent { |
||||||
|
border: 1px solid darken($progress-bg, 30%); |
||||||
|
background-color: darken($progress-bg, 10%); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.project, |
||||||
|
.version { |
||||||
|
&.task_late, |
||||||
|
&.task_done, |
||||||
|
&.task_todo { |
||||||
|
height: 2px; |
||||||
|
margin-top: 3px; |
||||||
|
} |
||||||
|
|
||||||
|
&.task_todo { |
||||||
|
border: 1px solid darken($progress-bar-info-bg, 10%); |
||||||
|
background-color: $progress-bar-info-bg; |
||||||
|
} |
||||||
|
|
||||||
|
&.marker { |
||||||
|
margin-top: 1px; |
||||||
|
margin-left: -4px; |
||||||
|
border: 0 none; |
||||||
|
background-image: url("../../../images/version_marker.png"); |
||||||
|
background-repeat: no-repeat; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.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; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Tooltips |
||||||
|
// |
||||||
|
|
||||||
|
.tooltip { |
||||||
|
position: relative; |
||||||
|
z-index: 24; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
z-index: 25; |
||||||
|
|
||||||
|
span.tip { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
span.tip { |
||||||
|
@include nice-shadow(3); |
||||||
|
display: none; |
||||||
|
position: absolute; |
||||||
|
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; |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
|
||||||
|
@if $sidebar-position == "left" { |
||||||
|
.list & { |
||||||
|
span.tip { |
||||||
|
right: 0; |
||||||
|
left: auto; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
// |
||||||
|
// Gravatars |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
img.gravatar { |
||||||
|
position: relative; |
||||||
|
top: -.15em; |
||||||
|
overflow: hidden; |
||||||
|
border-radius: $border-radius-large; |
||||||
|
line-height: 1; |
||||||
|
vertical-align: middle; |
||||||
|
|
||||||
|
h2 &, |
||||||
|
h3 &, |
||||||
|
h4 & { |
||||||
|
margin-right: 5px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Administration -> /users |
||||||
|
// |
||||||
|
|
||||||
|
.username img.gravatar { |
||||||
|
margin-right: .5em; |
||||||
|
} |
||||||
|
|
||||||
|
//== Gravatar |
||||||
|
// Used on 12px Gravatar img tags without the icon background |
||||||
|
|
||||||
|
.icon-gravatar { |
||||||
|
margin-right: 5px; |
||||||
|
float: left; |
||||||
|
} |
@ -0,0 +1,8 @@ |
|||||||
|
// |
||||||
|
// Base64 encoded images |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
// ACI = AutoComplete Indicator |
||||||
|
%image-aci { |
||||||
|
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAKBAMAAAAnY0GXAAAAD1BMVEUAAACzs7Ozs7Ozs7Ozs7NJvZFvAAAABHRSTlMA5kpJG2qUMwAAABtJREFUCNdjIBMYCkMRDIg4QhBuAUUhKCIPAAAlaQNk5qF21gAAAABJRU5ErkJggg=="); |
||||||
|
} |
@ -0,0 +1,809 @@ |
|||||||
|
// |
||||||
|
// Issue page |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
.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; |
||||||
|
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 * .5; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
.assigned-to img.gravatar { |
||||||
|
position: relative; |
||||||
|
top: -3px; |
||||||
|
margin-right: 5px; |
||||||
|
} |
||||||
|
|
||||||
|
> .subject, |
||||||
|
> .author { |
||||||
|
padding-left: $issue-gravatar-size * 1.1 + 10px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.assigned-to-me { |
||||||
|
.assigned-to .user { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> .subject { |
||||||
|
h3 { |
||||||
|
margin-bottom: .3em; |
||||||
|
color: $gray-950; |
||||||
|
font-size: $issue-heading-size * 1em; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
line-height: 1.1; |
||||||
|
} |
||||||
|
|
||||||
|
p { |
||||||
|
margin-bottom: 5px; |
||||||
|
font-size: $font-size-small; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> .author { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
} |
||||||
|
|
||||||
|
> hr, |
||||||
|
.attribute > hr { |
||||||
|
@if $clean-issues { |
||||||
|
margin: $issue-padding 0; |
||||||
|
} @else { |
||||||
|
margin: $issue-padding (-$issue-padding); |
||||||
|
} |
||||||
|
border-top-color: $issue-border; |
||||||
|
} |
||||||
|
|
||||||
|
> .description { |
||||||
|
> p { |
||||||
|
margin-bottom: $issue-padding; |
||||||
|
} |
||||||
|
|
||||||
|
> .wiki { |
||||||
|
@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 { |
||||||
|
margin: 0 0 $line-height-computed; |
||||||
|
float: none; |
||||||
|
color: $gray-600; |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-md-min) { |
||||||
|
margin: 0; |
||||||
|
float: right; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@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, |
||||||
|
td { |
||||||
|
padding: $issue-attribute-padding-v $issue-attribute-padding-h $issue-attribute-padding-v 0; |
||||||
|
text-align: left; |
||||||
|
vertical-align: top; |
||||||
|
} |
||||||
|
|
||||||
|
> tbody > tr { |
||||||
|
th { |
||||||
|
color: $gray-700; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
} |
||||||
|
|
||||||
|
td { |
||||||
|
color: $gray-950; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-md-min) { |
||||||
|
> tbody > tr { |
||||||
|
> th { |
||||||
|
width: $label-width; |
||||||
|
} |
||||||
|
|
||||||
|
> td { |
||||||
|
min-width: $label-width; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
div.attributes { |
||||||
|
@if $css-grid-layout { |
||||||
|
display: grid; |
||||||
|
grid-gap: 0 $padding-side; |
||||||
|
grid-template-columns: auto; |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-lg-min) { |
||||||
|
grid-template-columns: repeat(2, minmax(auto, max-content)); |
||||||
|
|
||||||
|
.attribute .value { |
||||||
|
min-width: $label-width; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.splitcontent { |
||||||
|
.attribute { |
||||||
|
padding-left: $label-width; |
||||||
|
|
||||||
|
.label { |
||||||
|
width: $label-width; |
||||||
|
margin-left: -$label-width; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.attribute { |
||||||
|
@extend %clearfix; |
||||||
|
|
||||||
|
.label, |
||||||
|
.value { |
||||||
|
padding: $issue-attribute-padding-v $issue-attribute-padding-h $issue-attribute-padding-v 0; |
||||||
|
} |
||||||
|
|
||||||
|
.label { |
||||||
|
box-sizing: border-box; |
||||||
|
float: left; |
||||||
|
color: $gray-700; |
||||||
|
} |
||||||
|
|
||||||
|
.value { |
||||||
|
color: $gray-950; |
||||||
|
|
||||||
|
&:empty::after { |
||||||
|
content: "-"; |
||||||
|
} |
||||||
|
|
||||||
|
*:last-child { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
table.progress { |
||||||
|
width: 80px; |
||||||
|
} |
||||||
|
|
||||||
|
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, |
||||||
|
p.custom-field-filedroplistner.fileover { |
||||||
|
background-color: $highlight-bg; |
||||||
|
} |
||||||
|
|
||||||
|
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; |
||||||
|
} |
||||||
|
|
||||||
|
p:first-child, |
||||||
|
.contextual + p { |
||||||
|
margin-top: 0; |
||||||
|
} |
||||||
|
|
||||||
|
img { |
||||||
|
position: relative; |
||||||
|
top: -1px; |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
|
||||||
|
.delete { |
||||||
|
opacity: $icon-opacity; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
opacity: $icon-hover-opacity; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
span.author { |
||||||
|
color: $gray-700; |
||||||
|
font-size: $font-size-small; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
div.thumbnails { |
||||||
|
margin-top: $issue-padding; |
||||||
|
|
||||||
|
div { |
||||||
|
display: inline; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
display: inline-block; |
||||||
|
margin-right: 2px; |
||||||
|
border: 1px solid $gray-400; |
||||||
|
border-radius: $border-radius-base; |
||||||
|
background-color: $body-bg; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
border-color: $gray-600; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
img { |
||||||
|
top: 0; |
||||||
|
margin: 3px; |
||||||
|
border-radius: $border-radius-base - 1; |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#issue_tree, |
||||||
|
#relations { |
||||||
|
> p { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
|
||||||
|
.issues { |
||||||
|
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.done_ratio { |
||||||
|
width: 80px; |
||||||
|
} |
||||||
|
|
||||||
|
td.buttons { |
||||||
|
width: 3em; |
||||||
|
vertical-align: middle; |
||||||
|
|
||||||
|
a:not(:first-child) { |
||||||
|
margin-left: 2px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#trackers_description { |
||||||
|
display: none; |
||||||
|
|
||||||
|
dt { |
||||||
|
margin: 0 0 ($line-height-computed * .25); |
||||||
|
} |
||||||
|
|
||||||
|
dd { |
||||||
|
margin-right: 0; |
||||||
|
margin-left: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#new-relation-form { |
||||||
|
text-align: right; |
||||||
|
|
||||||
|
> p { |
||||||
|
margin-bottom: 0; |
||||||
|
|
||||||
|
> input { |
||||||
|
margin-right: 5px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#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; |
||||||
|
} |
||||||
|
|
||||||
|
&.hide-details { |
||||||
|
.journal, |
||||||
|
.details, |
||||||
|
.first-of-notes::before { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.has-notes { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.hide-notes { |
||||||
|
.journal, |
||||||
|
.wiki, |
||||||
|
.first-of-details::before { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.has-details { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.journal { |
||||||
|
position: relative; |
||||||
|
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; |
||||||
|
} |
||||||
|
|
||||||
|
&.changeset { |
||||||
|
h4 + p { |
||||||
|
margin-bottom: 0; |
||||||
|
padding-bottom: $bubble-padding-vertical; |
||||||
|
background-color: $bubble-bg; |
||||||
|
font-size: $font-size-list; |
||||||
|
|
||||||
|
> a:first-child { |
||||||
|
font-family: $font-family-monospace; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> div { |
||||||
|
&:target { |
||||||
|
$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: $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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// 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: $bubble-bg; |
||||||
|
color: $gray-700; |
||||||
|
font-size: $font-size-list; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
|
||||||
|
a { |
||||||
|
color: $gray-900; |
||||||
|
|
||||||
|
&.user { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.journal-link { |
||||||
|
color: $gray-700; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@if $use-gravatars { |
||||||
|
> div > h4, |
||||||
|
> h4 { |
||||||
|
position: relative; |
||||||
|
|
||||||
|
&::before, |
||||||
|
&::after { |
||||||
|
content: " "; |
||||||
|
display: block; |
||||||
|
position: absolute; |
||||||
|
top: 9px; |
||||||
|
right: 100%; |
||||||
|
left: -14px; |
||||||
|
width: 0; |
||||||
|
height: 0; |
||||||
|
border-style: solid solid outset; |
||||||
|
border-color: transparent; |
||||||
|
pointer-events: none; |
||||||
|
} |
||||||
|
|
||||||
|
&::after { |
||||||
|
margin-top: 1px; |
||||||
|
margin-left: 2px; |
||||||
|
border-width: 6px; |
||||||
|
border-right-color: $bubble-bg; |
||||||
|
} |
||||||
|
|
||||||
|
&::before { |
||||||
|
border-width: 7px; |
||||||
|
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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> 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 + 20px; |
||||||
|
font-size: $font-size-list; |
||||||
|
|
||||||
|
img { |
||||||
|
margin: 0 0 -3px 4px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.thumbnails { |
||||||
|
margin: 0; |
||||||
|
padding: 0 $bubble-padding-horizontal $bubble-padding-vertical; |
||||||
|
|
||||||
|
img { |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.wiki { |
||||||
|
padding: $issue-padding; |
||||||
|
} |
||||||
|
|
||||||
|
form { |
||||||
|
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 { |
||||||
|
margin: 0 (-$issue-padding) (-$issue-padding); |
||||||
|
padding: 0; |
||||||
|
border: 0 none; |
||||||
|
|
||||||
|
.preview { |
||||||
|
padding: $issue-padding; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
i { |
||||||
|
&:first-of-type, |
||||||
|
&:last-of-type { |
||||||
|
padding: 2px 4px; |
||||||
|
border-radius: $border-radius-small; |
||||||
|
font-size: .9285em; |
||||||
|
font-style: normal; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
del > i:first-of-type, |
||||||
|
i:first-of-type { |
||||||
|
background-color: $journal-old-value-bg; |
||||||
|
color: $journal-old-value-color; |
||||||
|
} |
||||||
|
|
||||||
|
i:last-of-type { |
||||||
|
background-color: $journal-new-value-bg; |
||||||
|
color: $journal-new-value-color; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.private-notes { |
||||||
|
border-left-color: $brand-warning; |
||||||
|
|
||||||
|
> div > h4::before { |
||||||
|
border-right-color: $brand-warning; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#activity dt, |
||||||
|
.journal { |
||||||
|
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; |
||||||
|
} |
||||||
|
|
||||||
|
span.private { |
||||||
|
padding: $tracker-inline-padding; |
||||||
|
border-radius: $border-radius-small; |
||||||
|
background: $brand-warning; |
||||||
|
color: $brand-text; |
||||||
|
font-size: $font-size-small; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
text-transform: uppercase; |
||||||
|
} |
||||||
|
|
||||||
|
#issue-changesets { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-md-min) { |
||||||
|
width: 45%; |
||||||
|
float: right; |
||||||
|
|
||||||
|
+ #history { |
||||||
|
margin-right: 45%; |
||||||
|
padding-right: $padding-side; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-lg-min) { |
||||||
|
width: 33%; |
||||||
|
|
||||||
|
+ #history { |
||||||
|
margin-right: 33%; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
div.changeset { |
||||||
|
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; |
||||||
|
} |
||||||
|
|
||||||
|
> p { |
||||||
|
@include clearfix; |
||||||
|
margin: 0; |
||||||
|
padding: $padding-base-vertical $padding-base-horizontal; |
||||||
|
color: $gray-700; |
||||||
|
|
||||||
|
> a:first-child { |
||||||
|
font-family: $font-family-monospace; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.author a { |
||||||
|
color: $gray-900; |
||||||
|
|
||||||
|
&.user { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> br { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> .wiki { |
||||||
|
padding: $padding-base-vertical $padding-base-horizontal; |
||||||
|
border-top: 1px solid $bubble-border; |
||||||
|
background-color: $body-bg; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,332 @@ |
|||||||
|
// |
||||||
|
// Tweaks for jQuery UI |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
|
||||||
|
//== Component containers |
||||||
|
// |
||||||
|
|
||||||
|
.ui-widget { |
||||||
|
&, |
||||||
|
input, |
||||||
|
select, |
||||||
|
textarea, |
||||||
|
button { |
||||||
|
font-family: inherit; |
||||||
|
font-size: inherit; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Widgets |
||||||
|
// |
||||||
|
|
||||||
|
.ui-widget-content { |
||||||
|
border: 1px solid $panel-border; |
||||||
|
background: $body-bg; |
||||||
|
color: $text-color; |
||||||
|
|
||||||
|
a { |
||||||
|
color: $text-color; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ui-widget-header { |
||||||
|
border: 0 none; |
||||||
|
background: $header-bg; |
||||||
|
color: $header-text; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
|
||||||
|
a { |
||||||
|
color: $header-text; |
||||||
|
} |
||||||
|
|
||||||
|
a, |
||||||
|
button { |
||||||
|
&.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-button:hover { |
||||||
|
border-color: darken($header-bg, 12%); |
||||||
|
background: darken($header-bg, 10%); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Interaction states |
||||||
|
// |
||||||
|
|
||||||
|
.ui-state-default, |
||||||
|
.ui-widget-content .ui-state-default, |
||||||
|
.ui-widget-header .ui-state-default { |
||||||
|
border: 1px solid $component-border; |
||||||
|
background: $component-bg; |
||||||
|
box-shadow: none; |
||||||
|
color: $component-color; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-state-default a, |
||||||
|
.ui-state-default a:link, |
||||||
|
.ui-state-default a:visited { |
||||||
|
color: $component-color; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-state-hover, |
||||||
|
.ui-widget-content .ui-state-hover, |
||||||
|
.ui-widget-header .ui-state-hover, |
||||||
|
.ui-state-focus, |
||||||
|
.ui-widget-content .ui-state-focus, |
||||||
|
.ui-widget-header .ui-state-focus { |
||||||
|
border: 1px solid $component-active-border; |
||||||
|
background: $component-active-bg; |
||||||
|
color: $component-active-color; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-state-hover a, |
||||||
|
.ui-state-hover a:hover, |
||||||
|
.ui-state-hover a:link, |
||||||
|
.ui-state-hover a:visited, |
||||||
|
.ui-state-focus a, |
||||||
|
.ui-state-focus a:hover, |
||||||
|
.ui-state-focus a:link, |
||||||
|
.ui-state-focus a:visited { |
||||||
|
color: $component-active-color; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-state-active, |
||||||
|
.ui-widget-content .ui-state-active, |
||||||
|
.ui-widget-header .ui-state-active { |
||||||
|
border: 1px solid $component-active-border; |
||||||
|
background: $component-active-bg; |
||||||
|
color: $component-active-color; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
|
||||||
|
.ui-icon { |
||||||
|
background-image: url("../../../stylesheets/jquery/images/ui-icons_ffffff_256x240.png"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ui-state-active a, |
||||||
|
.ui-state-active a:link, |
||||||
|
.ui-state-active a:visited { |
||||||
|
color: $component-active-color; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-sortable-helper { |
||||||
|
background-color: $body-bg; |
||||||
|
@include nice-shadow(4); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Menu (e.g. autocomplete) |
||||||
|
// |
||||||
|
|
||||||
|
.ui-menu { |
||||||
|
@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 { |
||||||
|
border-radius: $panel-border-radius; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Dialogs |
||||||
|
// |
||||||
|
|
||||||
|
.modal { |
||||||
|
z-index: 50; |
||||||
|
background: $body-bg; |
||||||
|
|
||||||
|
h3.title { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
p.buttons { |
||||||
|
margin-bottom: 0; |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ui-dialog { |
||||||
|
&.ui-widget-content { |
||||||
|
@include nice-shadow(5); |
||||||
|
padding: 3px; |
||||||
|
border: 0 none; |
||||||
|
|
||||||
|
.ui-dialog-content { |
||||||
|
padding: 1em; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ui-dialog-titlebar-close { |
||||||
|
right: .5em; |
||||||
|
} |
||||||
|
|
||||||
|
input[type="button"] { |
||||||
|
@include button-variant($btn-link-color, $btn-link-bg, $btn-link-border); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ui-widget-overlay { |
||||||
|
background: #000; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Datepicker |
||||||
|
// |
||||||
|
|
||||||
|
img.ui-datepicker-trigger { |
||||||
|
margin-left: 4px; |
||||||
|
vertical-align: middle; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-datepicker { |
||||||
|
@include nice-shadow(3); |
||||||
|
padding: .3em .6em .6em; |
||||||
|
border: 0 none; |
||||||
|
|
||||||
|
.ui-datepicker-header { |
||||||
|
margin: 0 -.3em; |
||||||
|
padding: .3em; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-datepicker-prev { |
||||||
|
left: .3em; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-datepicker-next { |
||||||
|
right: .3em; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-datepicker-prev, |
||||||
|
.ui-datepicker-next { |
||||||
|
top: .3em; |
||||||
|
border: 0 none; |
||||||
|
background: transparent; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-datepicker-title { |
||||||
|
margin: 0 (1.8em + .3em); |
||||||
|
} |
||||||
|
|
||||||
|
select.ui-datepicker-month, |
||||||
|
select.ui-datepicker-year { |
||||||
|
width: 49%; |
||||||
|
height: 1.8em; |
||||||
|
margin: 0; |
||||||
|
} |
||||||
|
|
||||||
|
select.ui-datepicker-year { |
||||||
|
margin-left: 1%; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-datepicker-calendar { |
||||||
|
margin: 0; |
||||||
|
table-layout: fixed; |
||||||
|
|
||||||
|
.ui-state-default { |
||||||
|
border-color: $body-bg; |
||||||
|
background: $body-bg; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-state-focus, |
||||||
|
.ui-state-hover { |
||||||
|
border-color: $component-active-bg; |
||||||
|
background: $component-active-bg; |
||||||
|
color: $component-active-color; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-state-active { |
||||||
|
border-color: $highlight-border; |
||||||
|
background: $highlight-bg; |
||||||
|
color: $highlight-text; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-datepicker-today { |
||||||
|
.ui-state-highlight { |
||||||
|
border-color: $component-active-border; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ui-datepicker-current-day { |
||||||
|
.ui-state-active { |
||||||
|
border-color: $highlight-border; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
td { |
||||||
|
padding: 0 1px 1px 0; |
||||||
|
text-align: right; |
||||||
|
|
||||||
|
a { |
||||||
|
padding-right: .4em; |
||||||
|
padding-left: 0; |
||||||
|
border-radius: $border-radius-base; |
||||||
|
} |
||||||
|
|
||||||
|
&.ui-datepicker-week-col { |
||||||
|
padding-right: $table-condensed-cell-padding; |
||||||
|
color: $gray-600; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ui-datepicker-buttonpane { |
||||||
|
@include clearfix; |
||||||
|
margin: .6em 0 0; |
||||||
|
padding: .6em 0 0; |
||||||
|
|
||||||
|
button { |
||||||
|
margin: 0; |
||||||
|
padding: $btn-padding-vertical $btn-padding-horizontal; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.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; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,260 @@ |
|||||||
|
// |
||||||
|
// WYSIWYG icons |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
// 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; |
||||||
|
|
||||||
|
.jstSpacer { |
||||||
|
margin-right: 4px; |
||||||
|
} |
||||||
|
|
||||||
|
@media (min-width: $screen-md) { |
||||||
|
.jstb_help { |
||||||
|
margin-right: 0; |
||||||
|
margin-left: -6px; |
||||||
|
float: right; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
button { |
||||||
|
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; } |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
body { |
||||||
|
.table-generator { |
||||||
|
td { |
||||||
|
border-color: $tab-border; |
||||||
|
} |
||||||
|
|
||||||
|
td.selected-cell, |
||||||
|
td:hover { |
||||||
|
background-color: $brand-primary; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,776 @@ |
|||||||
|
// |
||||||
|
// Lists |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
table { |
||||||
|
border-spacing: 0; |
||||||
|
border-collapse: collapse; |
||||||
|
} |
||||||
|
|
||||||
|
table.list { |
||||||
|
width: 100%; |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
font-size: $font-size-list; |
||||||
|
|
||||||
|
.autoscroll & { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
|
||||||
|
&.changesets { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
} |
||||||
|
|
||||||
|
th, |
||||||
|
.table-list-header { |
||||||
|
padding: $table-cell-padding; |
||||||
|
border: 2px solid $table-border-color; |
||||||
|
border-width: $table-list-header-border; |
||||||
|
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-900; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
tr.ui-sortable-helper { |
||||||
|
background-color: $highlight-bg; |
||||||
|
} |
||||||
|
|
||||||
|
td { |
||||||
|
padding: $table-cell-padding; |
||||||
|
border: 1px solid $table-border-color; |
||||||
|
border-width: $table-list-item-border; |
||||||
|
text-align: center; |
||||||
|
vertical-align: top; |
||||||
|
|
||||||
|
&.icon { |
||||||
|
padding-left: $table-cell-padding + $icon-width; |
||||||
|
} |
||||||
|
|
||||||
|
&.id, |
||||||
|
&.issue_id, |
||||||
|
&.legacy_id, |
||||||
|
&.parent, |
||||||
|
&.relations, |
||||||
|
&.tracker { |
||||||
|
width: 2%; |
||||||
|
} |
||||||
|
|
||||||
|
&.id, |
||||||
|
&.issue_id, |
||||||
|
&.legacy_id { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
&.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, |
||||||
|
&.status, |
||||||
|
&.string, |
||||||
|
&.subject, |
||||||
|
&.text, |
||||||
|
&.tracker, |
||||||
|
&.user { |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
|
||||||
|
&.id, |
||||||
|
&.legacy_id, |
||||||
|
&.estimated_hours, |
||||||
|
&.float, |
||||||
|
&.int, |
||||||
|
&.remaining_hours, |
||||||
|
&.spent_hours, |
||||||
|
&.story_points { |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
td, |
||||||
|
div { |
||||||
|
&.buttons { |
||||||
|
text-align: right; |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
a { |
||||||
|
margin-right: $padding-small-vertical; |
||||||
|
|
||||||
|
&.icon-only { |
||||||
|
margin-right: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
img { |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
caption { |
||||||
|
padding: .5em .5em .5em 0; |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.table-list-cell { |
||||||
|
display: table-cell; |
||||||
|
padding: $table-cell-padding; |
||||||
|
vertical-align: top; |
||||||
|
} |
||||||
|
|
||||||
|
tr.project { |
||||||
|
.name a { |
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
|
||||||
|
&.closed, |
||||||
|
&.archived, |
||||||
|
&.closed a, |
||||||
|
&.archived a { |
||||||
|
color: $gray-600; |
||||||
|
} |
||||||
|
|
||||||
|
&.idnt td.name { |
||||||
|
background-image: inline-svg("chevron-right.svg", (path: (fill: $gray-600))); |
||||||
|
background-repeat: no-repeat; |
||||||
|
} |
||||||
|
|
||||||
|
@for $i from 1 through 9 { |
||||||
|
&.idnt-#{$i} td.name { |
||||||
|
padding-left: $table-cell-padding + 16px * $i; |
||||||
|
background-position: ($table-cell-padding + 16px * ($i - 1) - 3px) 50%; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
tr.issue { |
||||||
|
text-align: center; |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
.category, |
||||||
|
.enumeration, |
||||||
|
.list, |
||||||
|
.parent-subject, |
||||||
|
.parent, |
||||||
|
.relations, |
||||||
|
.string, |
||||||
|
.subject, |
||||||
|
.text { |
||||||
|
white-space: normal; |
||||||
|
} |
||||||
|
|
||||||
|
.relations { |
||||||
|
text-align: left; |
||||||
|
white-space: normal; |
||||||
|
|
||||||
|
span { |
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.controller-issues.action-index & { |
||||||
|
&.assigned-to-me { |
||||||
|
.assigned_to, |
||||||
|
.subject { |
||||||
|
a { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.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} td.subject { |
||||||
|
padding-left: $table-cell-padding + 16px * $i; |
||||||
|
background-position: ($table-cell-padding + 16px * ($i - 1) - 3px) 50%; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.issues { |
||||||
|
.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 { |
||||||
|
max-height: 20em; |
||||||
|
padding: $padding-wiki; |
||||||
|
overflow: auto; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
tr { |
||||||
|
span.expander { |
||||||
|
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:not(.icon) { |
||||||
|
background-image: inline-svg("minus.svg", (path: (fill: $btn-default-icon-color))); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
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-400; |
||||||
|
|
||||||
|
td { |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
&.filename { |
||||||
|
width: 30%; |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
|
||||||
|
&.filename_no_report { |
||||||
|
width: 70%; |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
|
||||||
|
&.size { |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
|
||||||
|
&.revision, |
||||||
|
&.author { |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
|
||||||
|
&.age { |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.file td { |
||||||
|
&.filename a, |
||||||
|
&.filename_no_report a { |
||||||
|
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); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== 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 { |
||||||
|
@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 { |
||||||
|
border-radius: $border-radius-small ($border-radius-small * 3) ($border-radius-small * 3) $border-radius-small; |
||||||
|
background-color: $tracker-default-bg; |
||||||
|
color: $tracker-default-text; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
background-color: darken($tracker-default-bg, 10%); |
||||||
|
color: $tracker-default-text; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
&:focus, |
||||||
|
&:active { |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
a.issue { |
||||||
|
margin-right: 1px; |
||||||
|
padding: $tracker-inline-padding; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
|
||||||
|
&.closed { |
||||||
|
position: relative; |
||||||
|
color: mix($tracker-default-text, $tracker-default-bg, 75%); |
||||||
|
text-decoration: none; |
||||||
|
|
||||||
|
&::after { |
||||||
|
content: ""; |
||||||
|
display: block; |
||||||
|
position: absolute; |
||||||
|
right: 5px; |
||||||
|
bottom: 0; |
||||||
|
left: 5px; |
||||||
|
height: calc(50% - 2px * .5); |
||||||
|
transform: rotate(-4deg); |
||||||
|
transition: border-color $transition-time; |
||||||
|
border-top: 2px solid rgba($tracker-default-text, .95); |
||||||
|
} |
||||||
|
|
||||||
|
&:hover::after { |
||||||
|
border-top-color: rgba($tracker-default-text, .25); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
tr.issue .id > a, |
||||||
|
tr.issue .legacy_id > a { |
||||||
|
display: block; |
||||||
|
padding: $tracker-list-padding; |
||||||
|
|
||||||
|
&::before { |
||||||
|
content: "#"; |
||||||
|
color: mix($tracker-default-text, $tracker-default-bg, 50%); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
tr.issue .issue_id > a { |
||||||
|
display: inline-block; |
||||||
|
padding: $tracker-list-padding; |
||||||
|
} |
||||||
|
|
||||||
|
@each $tracker-id, $tracker-colors in $tracker-colors-map { |
||||||
|
@include tracker( |
||||||
|
".tracker-#{$tracker-id}", |
||||||
|
map-get($tracker-colors, background), |
||||||
|
map-get($tracker-colors, color) |
||||||
|
); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== List groups |
||||||
|
// |
||||||
|
|
||||||
|
tr.group { |
||||||
|
> td { |
||||||
|
border-bottom: 1px solid $table-border-color; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
text-align: left; |
||||||
|
|
||||||
|
a { |
||||||
|
color: $brand-primary; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.toggle-all { |
||||||
|
display: none; |
||||||
|
color: $gray-600; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
} |
||||||
|
|
||||||
|
&:hover .toggle-all { |
||||||
|
display: inline; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.toggle-all:hover { |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Time entry in report |
||||||
|
// |
||||||
|
|
||||||
|
tr.time-entry { |
||||||
|
text-align: center; |
||||||
|
|
||||||
|
td.project, |
||||||
|
td.spent_on, |
||||||
|
td.activity { |
||||||
|
width: 6em; |
||||||
|
} |
||||||
|
|
||||||
|
td.user { |
||||||
|
width: 12em; |
||||||
|
} |
||||||
|
|
||||||
|
td.issue, |
||||||
|
td.comments { |
||||||
|
text-align: left; |
||||||
|
white-space: normal; |
||||||
|
} |
||||||
|
|
||||||
|
td.hours { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.time-entries, |
||||||
|
tr.time-entry { |
||||||
|
td.hours { |
||||||
|
width: 1%; |
||||||
|
text-align: right; |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
.hours-dec { |
||||||
|
font-size: .9em; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.mypage-box { |
||||||
|
td.hours { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
|
||||||
|
em { |
||||||
|
font-style: normal; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
tr.time-entry td.hours { |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//== Wiki page history entry |
||||||
|
// |
||||||
|
|
||||||
|
tr.wiki-page-version { |
||||||
|
td.updated_on, |
||||||
|
td.author { |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//== Project versions list |
||||||
|
// |
||||||
|
|
||||||
|
tr.version { |
||||||
|
&.closed { |
||||||
|
color: $gray-700; |
||||||
|
|
||||||
|
a { |
||||||
|
color: $gray-700; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
td { |
||||||
|
&.date, |
||||||
|
&.status, |
||||||
|
&.sharing { |
||||||
|
text-align: center; |
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Users list |
||||||
|
// |
||||||
|
|
||||||
|
tr.user { |
||||||
|
td { |
||||||
|
width: 13%; |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
&.username, |
||||||
|
&.firstname, |
||||||
|
&.lastname { |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
|
||||||
|
&.email { |
||||||
|
width: 18%; |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.locked, |
||||||
|
&.registered, |
||||||
|
&.locked a, |
||||||
|
&.registered a { |
||||||
|
color: $gray-600; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Plugins list |
||||||
|
// |
||||||
|
|
||||||
|
table.plugins { |
||||||
|
.configure { |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
|
||||||
|
span.name { |
||||||
|
margin-bottom: .5em; |
||||||
|
font-size: $font-size-large; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.description, |
||||||
|
.url { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Files list |
||||||
|
// |
||||||
|
|
||||||
|
table.files { |
||||||
|
tbody th { |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
|
||||||
|
tr.file td { |
||||||
|
&.filename { |
||||||
|
padding-left: $icon-width + $table-cell-padding; |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
|
||||||
|
&.digest { |
||||||
|
font-family: $font-family-monospace; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Admin lists |
||||||
|
// |
||||||
|
|
||||||
|
.controller-enumerations { |
||||||
|
td.name { |
||||||
|
width: 50%; |
||||||
|
} |
||||||
|
|
||||||
|
td.tick, |
||||||
|
td.reorder { |
||||||
|
width: 15%; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
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; |
||||||
|
|
||||||
|
&:last-child { |
||||||
|
margin-right: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.value { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,111 @@ |
|||||||
|
// |
||||||
|
// Login form |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
#login-form { |
||||||
|
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; |
||||||
|
} |
||||||
|
|
||||||
|
td { |
||||||
|
padding: 0; |
||||||
|
|
||||||
|
&: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; |
||||||
|
box-shadow: $panel-shadow; |
||||||
|
color: $panel-color; |
||||||
|
|
||||||
|
table { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#openid_url { |
||||||
|
padding-right: $input-padding-horizontal + 24px; |
||||||
|
background-image: url("../../../images/openid-bg.gif"); |
||||||
|
background-repeat: no-repeat; |
||||||
|
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; |
||||||
|
} |
@ -0,0 +1,83 @@ |
|||||||
|
// |
||||||
|
// Pagination (multiple pages) |
||||||
|
// -------------------------------------------------- |
||||||
|
.pagination { |
||||||
|
.pages { |
||||||
|
display: inline-block; |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
} |
||||||
|
|
||||||
|
li { |
||||||
|
display: inline-block; |
||||||
|
margin-right: .3em; |
||||||
|
list-style: none; |
||||||
|
} |
||||||
|
|
||||||
|
li > a, |
||||||
|
li > span, |
||||||
|
> .previous, |
||||||
|
> .next, |
||||||
|
> .page { |
||||||
|
display: inline-block; |
||||||
|
padding: $pagination-padding-vertical $pagination-padding-horizontal; |
||||||
|
border: 1px solid $pagination-border; |
||||||
|
border-radius: $border-radius-base; |
||||||
|
background-color: $pagination-bg; |
||||||
|
color: $pagination-color; |
||||||
|
text-decoration: none; |
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
|
||||||
|
li > span { |
||||||
|
border-color: $pagination-inactive-border; |
||||||
|
background-color: $pagination-inactive-bg; |
||||||
|
color: $pagination-inactive-color; |
||||||
|
cursor: default; |
||||||
|
} |
||||||
|
|
||||||
|
.spacer > span { |
||||||
|
padding: 0; |
||||||
|
border: 0 none; |
||||||
|
background: transparent; |
||||||
|
color: $text-color; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
&:hover, |
||||||
|
&:focus { |
||||||
|
border-color: $pagination-hover-border; |
||||||
|
background-color: $pagination-hover-bg; |
||||||
|
color: $pagination-hover-color; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.page.current, |
||||||
|
.current > span { |
||||||
|
z-index: 2; |
||||||
|
border-color: $pagination-active-border; |
||||||
|
background-color: $pagination-active-bg; |
||||||
|
color: $pagination-active-color; |
||||||
|
cursor: default; |
||||||
|
} |
||||||
|
|
||||||
|
.items, |
||||||
|
.per-page { |
||||||
|
display: inline-block; |
||||||
|
margin: ($pagination-padding-vertical + 1px) 0 ($pagination-padding-vertical + 1px) $pagination-padding-vertical; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
p.pagination { |
||||||
|
margin-bottom: 0; |
||||||
|
float: left; |
||||||
|
|
||||||
|
+ h1, |
||||||
|
+ h2, |
||||||
|
+ h3, |
||||||
|
+ h4, |
||||||
|
+ h5, |
||||||
|
+ h6 { |
||||||
|
clear: both; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,79 @@ |
|||||||
|
// |
||||||
|
// Media print specific styles |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
@media print { |
||||||
|
#top-menu, |
||||||
|
#header, |
||||||
|
#main-menu, |
||||||
|
#sidebar, |
||||||
|
#footer, |
||||||
|
#wiki_add_attachment, |
||||||
|
.hide-when-print, |
||||||
|
.contextual, |
||||||
|
.other-formats { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.pagination { |
||||||
|
.pages, |
||||||
|
.per-page { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#main { |
||||||
|
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: $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 $gray-500; |
||||||
|
background-color: transparent; |
||||||
|
|
||||||
|
&.buttons { |
||||||
|
padding: 0; |
||||||
|
|
||||||
|
a { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,76 @@ |
|||||||
|
// |
||||||
|
// Progress bar |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
table.progress { |
||||||
|
width: 80px; |
||||||
|
margin-top: 3px; |
||||||
|
margin-right: 5px; |
||||||
|
float: left; |
||||||
|
empty-cells: show; |
||||||
|
border: 0 none; |
||||||
|
|
||||||
|
.version-overview & { |
||||||
|
width: 40em; |
||||||
|
} |
||||||
|
|
||||||
|
td.done_ratio & { |
||||||
|
margin-right: auto; |
||||||
|
margin-left: auto; |
||||||
|
float: none; |
||||||
|
} |
||||||
|
|
||||||
|
tr { |
||||||
|
background: transparent !important; // stylelint-disable-line declaration-no-important |
||||||
|
} |
||||||
|
|
||||||
|
td { |
||||||
|
height: $progress-height; |
||||||
|
padding: 0; |
||||||
|
border: 0 none; |
||||||
|
|
||||||
|
&: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: $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 !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 { |
||||||
|
&.percent { |
||||||
|
margin-bottom: 0; |
||||||
|
font-size: $font-size-small; |
||||||
|
} |
||||||
|
|
||||||
|
&.progress-info { |
||||||
|
clear: left; |
||||||
|
color: $gray-700; |
||||||
|
font-size: 80%; |
||||||
|
} |
||||||
|
} |
@ -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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -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; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,147 @@ |
|||||||
|
// |
||||||
|
// Activity and search results list |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
#activity dl, |
||||||
|
#search-results { |
||||||
|
margin-left: $padding-side; |
||||||
|
} |
||||||
|
|
||||||
|
#activity, |
||||||
|
#search-results { |
||||||
|
dd { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
padding-top: .1em; |
||||||
|
} |
||||||
|
|
||||||
|
dt { |
||||||
|
padding-left: $padding-side; |
||||||
|
background-repeat: no-repeat; |
||||||
|
background-position: 0 center; |
||||||
|
} |
||||||
|
|
||||||
|
span.project::after { |
||||||
|
content: " -"; |
||||||
|
} |
||||||
|
|
||||||
|
span.description { |
||||||
|
display: block; |
||||||
|
color: $gray-700; |
||||||
|
font-style: italic; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#activity { |
||||||
|
$activity-avatar: 24px; |
||||||
|
$activity-avatar-space: 5px; |
||||||
|
$activity-indent: 20px; |
||||||
|
|
||||||
|
@if $use-gravatars { |
||||||
|
$activity-indent: $activity-indent + $activity-avatar + $activity-avatar-space; |
||||||
|
} |
||||||
|
|
||||||
|
h3, |
||||||
|
h4 { |
||||||
|
margin: 0 0 $line-height-computed; |
||||||
|
padding-bottom: .2em; |
||||||
|
border-bottom: 1px dotted $gray-600; |
||||||
|
font-size: $font-size-h4; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
} |
||||||
|
|
||||||
|
dt { |
||||||
|
&.grouped { |
||||||
|
margin-left: $activity-indent; |
||||||
|
} |
||||||
|
|
||||||
|
&.me .time { |
||||||
|
border-bottom: 1px solid $gray-400; |
||||||
|
} |
||||||
|
|
||||||
|
.time { |
||||||
|
color: $gray-700; |
||||||
|
} |
||||||
|
|
||||||
|
@if $use-gravatars { |
||||||
|
.gravatar { |
||||||
|
top: 0; |
||||||
|
margin-top: -2px; |
||||||
|
margin-right: $activity-avatar-space; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
dd { |
||||||
|
overflow: hidden; |
||||||
|
font-size: $font-size-small; |
||||||
|
|
||||||
|
&.grouped { |
||||||
|
margin-left: $activity-indent; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#search-results-counts { |
||||||
|
float: right; |
||||||
|
|
||||||
|
ul { |
||||||
|
@extend %clearfix; |
||||||
|
} |
||||||
|
|
||||||
|
li { |
||||||
|
margin-left: 1em; |
||||||
|
float: left; |
||||||
|
list-style-type: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// Search form |
||||||
|
|
||||||
|
#search-form { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
|
||||||
|
input, |
||||||
|
select { |
||||||
|
margin-right: 5px; |
||||||
|
margin-bottom: $line-height-computed * .5; |
||||||
|
} |
||||||
|
|
||||||
|
label { |
||||||
|
@include check-inline; |
||||||
|
line-height: $input-height-base; |
||||||
|
|
||||||
|
input[type="checkbox"], |
||||||
|
input[type="radio"] { |
||||||
|
margin-top: $check-input-margin-btn-v; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
p:last-child { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// Search results highlight |
||||||
|
|
||||||
|
.highlight { |
||||||
|
background-color: saturate(shade($yellow, 100), 25%); |
||||||
|
color: saturate(shade($yellow, 800), 25%); |
||||||
|
|
||||||
|
&.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%); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,196 @@ |
|||||||
|
// |
||||||
|
// Tabs |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
$tabs-height: $line-height-computed + $tab-padding-vertical * 2 + 1px + 1px; |
||||||
|
|
||||||
|
.tabs { |
||||||
|
$tabs-buttons-width: 40px; |
||||||
|
|
||||||
|
position: relative; |
||||||
|
overflow: hidden; |
||||||
|
|
||||||
|
@if not $flexbox-layout { |
||||||
|
padding-right: $tabs-buttons-width; |
||||||
|
} |
||||||
|
|
||||||
|
> ul { |
||||||
|
box-sizing: border-box; |
||||||
|
margin: 0; |
||||||
|
padding-left: 0; |
||||||
|
list-style: none; |
||||||
|
|
||||||
|
@if $flexbox-layout { |
||||||
|
display: flex; |
||||||
|
flex-wrap: nowrap; |
||||||
|
height: $tabs-height; |
||||||
|
} @else { |
||||||
|
width: 2000px; |
||||||
|
@extend %clearfix; |
||||||
|
} |
||||||
|
|
||||||
|
> li { |
||||||
|
@if $flexbox-layout { |
||||||
|
flex: 0 1 auto; |
||||||
|
} @else { |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
> a { |
||||||
|
display: block; |
||||||
|
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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.tabs-buttons { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
right: 0; |
||||||
|
width: $tabs-buttons-width; |
||||||
|
border-bottom: 1px solid $tab-border; |
||||||
|
background-color: $body-bg; |
||||||
|
|
||||||
|
> button { |
||||||
|
width: 50%; |
||||||
|
height: $tabs-height - 1px; |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
float: left; |
||||||
|
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; |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:active { |
||||||
|
opacity: $icon-hover-opacity; |
||||||
|
} |
||||||
|
|
||||||
|
&:active { |
||||||
|
background-color: $tab-hover-bg; |
||||||
|
} |
||||||
|
|
||||||
|
&.disabled { |
||||||
|
opacity: $icon-opacity * .5; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.tab-left { |
||||||
|
background-image: inline-svg("chevron-left.svg", (path: (fill: $btn-default-icon-color))); |
||||||
|
} |
||||||
|
|
||||||
|
.tab-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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//== Specific tabs content layout |
||||||
|
// |
||||||
|
|
||||||
|
#tab-content-modules fieldset p { |
||||||
|
margin: 3px 0 4px; |
||||||
|
} |
||||||
|
|
||||||
|
#tab-content-members, |
||||||
|
#tab-content-memberships, |
||||||
|
#tab-content-users { |
||||||
|
.splitcontentleft { |
||||||
|
width: 65%; |
||||||
|
} |
||||||
|
|
||||||
|
.splitcontentright { |
||||||
|
width: 35%; |
||||||
|
} |
||||||
|
|
||||||
|
fieldset { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
|
||||||
|
legend { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
label { |
||||||
|
@include check; |
||||||
|
display: block; |
||||||
|
margin-bottom: 3px; |
||||||
|
} |
||||||
|
|
||||||
|
label[for="principal_search"] { |
||||||
|
padding-left: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.pagination .items { |
||||||
|
margin-left: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#tab-content-members, |
||||||
|
#tab-content-users { |
||||||
|
#principals { |
||||||
|
max-height: 400px; |
||||||
|
overflow: auto; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#tab-content-memberships .splitcontentright select { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
#principals_for_new_member { |
||||||
|
.pagination { |
||||||
|
float: none; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,439 @@ |
|||||||
|
// |
||||||
|
// Top menu |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
#top-menu { |
||||||
|
$top-menu-padding-vertical: $padding-small-vertical + 1px; |
||||||
|
$top-menu-padding-horizontal: $padding-side; |
||||||
|
@extend %clearfix; |
||||||
|
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: $top-menu-padding-vertical + 1px; |
||||||
|
$toggler-position-h: 1px; |
||||||
|
|
||||||
|
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; |
||||||
|
|
||||||
|
&.expanded { |
||||||
|
max-height: none; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
display: inline-block; |
||||||
|
margin-bottom: $top-menu-padding-vertical; |
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
|
||||||
|
.top-menu-toggler { |
||||||
|
@extend %fa-icon; |
||||||
|
display: block; |
||||||
|
position: absolute; |
||||||
|
top: $toggler-position-v; |
||||||
|
@if $sidebar-position == "left" { |
||||||
|
left: $toggler-position-h; |
||||||
|
} @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; |
||||||
|
|
||||||
|
&::before { |
||||||
|
content: $fa-var-caret-square-o-down; |
||||||
|
margin-right: 0; |
||||||
|
} |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus, |
||||||
|
&:active { |
||||||
|
color: mix($top-menu-link-hover, $top-menu-bg, 50%); |
||||||
|
} |
||||||
|
|
||||||
|
&.expanded { |
||||||
|
&::before { |
||||||
|
content: $fa-var-caret-square-o-up; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@media screen and (min-width: $top-menu-collapse-breakpoint) { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
ul { |
||||||
|
@include clearfix; |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
} |
||||||
|
|
||||||
|
li { |
||||||
|
margin: 0 .8em 0 0; |
||||||
|
padding: 0; |
||||||
|
float: left; |
||||||
|
list-style-type: none; |
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
color: $top-menu-link; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
color: $top-menu-link-hover; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#loggedas { |
||||||
|
margin-left: 1em; |
||||||
|
float: right; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#account { |
||||||
|
float: right; |
||||||
|
|
||||||
|
> ul > li { |
||||||
|
margin-right: 0; |
||||||
|
margin-left: .8em; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// |
||||||
|
// Header |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
#header { |
||||||
|
@extend %clearfix; |
||||||
|
position: relative; |
||||||
|
background-color: $header-bg; |
||||||
|
color: $header-text; |
||||||
|
|
||||||
|
> h1 { |
||||||
|
padding: $header-padding-vertical $header-padding-horizontal; |
||||||
|
|
||||||
|
@if $use-logo { |
||||||
|
padding-left: $logo-image-width + $logo-position-horizontal + $logo-space; |
||||||
|
background-image: url("../images/logo/logo.png"); |
||||||
|
background-repeat: no-repeat; |
||||||
|
background-position: $logo-position-horizontal $logo-position-vertical; |
||||||
|
|
||||||
|
@if $use-retina-logo { |
||||||
|
@include img-retina("../images/logo/logo@2x.png", $logo-image-width, $logo-image-height); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.root { |
||||||
|
color: $header-root; |
||||||
|
font-weight: $font-weight-semi-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.ancestor { |
||||||
|
font-weight: $font-weight-semi-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.root, |
||||||
|
.ancestor { |
||||||
|
display: inline-block; |
||||||
|
} |
||||||
|
|
||||||
|
.current-project { |
||||||
|
display: inline-block; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
color: $header-link; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#quick-search { |
||||||
|
#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; |
||||||
|
} |
||||||
|
|
||||||
|
> * { |
||||||
|
vertical-align: top; |
||||||
|
} |
||||||
|
|
||||||
|
form { |
||||||
|
display: inline-block; |
||||||
|
|
||||||
|
input { |
||||||
|
width: $quick-search-width; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> form > input, |
||||||
|
> select { |
||||||
|
border-color: $quick-search-border; |
||||||
|
|
||||||
|
&:focus { |
||||||
|
border-color: $quick-search-border-focus; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
option { |
||||||
|
background-color: $input-bg; |
||||||
|
color: $input-color; |
||||||
|
|
||||||
|
&[disabled] { |
||||||
|
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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.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; |
||||||
|
box-shadow: inset 0 -1px $main-menu-border; |
||||||
|
color: $text-color; |
||||||
|
|
||||||
|
&.tabs { |
||||||
|
margin-bottom: 0; |
||||||
|
overflow: inherit; |
||||||
|
|
||||||
|
> ul { |
||||||
|
height: $tabs-height; |
||||||
|
|
||||||
|
> li { |
||||||
|
> a { |
||||||
|
height: $tabs-height; |
||||||
|
margin: 0; |
||||||
|
border: 0 none; |
||||||
|
border-radius: 0; |
||||||
|
background: transparent; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> ul { |
||||||
|
@extend %clearfix; |
||||||
|
margin: 0; |
||||||
|
padding: 0 ($padding-side - $main-menu-padding-horizontal); |
||||||
|
list-style: none; |
||||||
|
color: $main-menu-link; |
||||||
|
|
||||||
|
> li { |
||||||
|
position: relative; |
||||||
|
float: left; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
> .new-object { |
||||||
|
z-index: 100; |
||||||
|
border-bottom: 1px solid $main-menu-dropdown-bg; |
||||||
|
} |
||||||
|
|
||||||
|
> .menu-children { |
||||||
|
visibility: visible; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> a { |
||||||
|
display: block; |
||||||
|
padding: $main-menu-padding-vertical $main-menu-padding-horizontal; |
||||||
|
transition: box-shadow $transition-time-long; |
||||||
|
color: $main-menu-link; |
||||||
|
line-height: $line-height-computed; |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-lg-min) { |
||||||
|
padding-right: $main-menu-padding-horizontal * 2; |
||||||
|
padding-left: $main-menu-padding-horizontal * 2; |
||||||
|
} |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus { |
||||||
|
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; |
||||||
|
background-color: $main-menu-bg-active; |
||||||
|
box-shadow: none; |
||||||
|
color: $main-menu-link-active; |
||||||
|
font-weight: $font-weight-semi-bold; |
||||||
|
} |
||||||
|
|
||||||
|
&.new-object { |
||||||
|
position: relative; |
||||||
|
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; |
||||||
|
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 { |
||||||
|
box-shadow: none; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
color: $main-menu-link; |
||||||
|
} |
||||||
|
|
||||||
|
.menu-children { |
||||||
|
@include nice-shadow(2); |
||||||
|
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; |
||||||
|
|
||||||
|
&.visible { |
||||||
|
visibility: visible; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
display: block; |
||||||
|
padding: $tab-padding-vertical ($tab-padding-horizontal * 2); |
||||||
|
border-top: 1px solid $main-menu-border; |
||||||
|
color: $main-menu-link; |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus { |
||||||
|
background-color: $component-active-bg; |
||||||
|
color: $component-active-color; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> li:first-child > a { |
||||||
|
border: 0 none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.tabs-buttons { |
||||||
|
display: none !important; // stylelint-disable-line declaration-no-important |
||||||
|
padding-left: 0; |
||||||
|
border-color: $main-menu-border; |
||||||
|
background-color: $main-menu-bg; |
||||||
|
|
||||||
|
> button { |
||||||
|
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; // stylelint-disable-line declaration-no-important |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,498 @@ |
|||||||
|
.wiki.wiki-page { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
font-size: $wiki-font-size; |
||||||
|
|
||||||
|
@if $wiki-page-more-vertical-space { |
||||||
|
// Add some space between list items |
||||||
|
ul, |
||||||
|
ol { |
||||||
|
li { |
||||||
|
margin-top: .25em; |
||||||
|
} |
||||||
|
|
||||||
|
ul, |
||||||
|
ol { |
||||||
|
margin-top: .25em; |
||||||
|
margin-bottom: .25em; |
||||||
|
|
||||||
|
li { |
||||||
|
margin-top: .125em; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.controller-wiki { |
||||||
|
.wiki > .preview, |
||||||
|
.wiki.wiki-preview { |
||||||
|
font-size: $wiki-font-size; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
div.wiki { |
||||||
|
color: $wiki-text; |
||||||
|
line-height: $wiki-line-height; |
||||||
|
|
||||||
|
// stylelint-disable selector-list-comma-newline-after |
||||||
|
h1, .h1, |
||||||
|
h2, .h2, |
||||||
|
h3, .h3, |
||||||
|
h4, .h4, |
||||||
|
h5, .h5, |
||||||
|
h6, .h6 { |
||||||
|
margin-top: 1em; |
||||||
|
margin-bottom: $wiki-font-size; |
||||||
|
font-weight: $headings-font-weight; |
||||||
|
line-height: $headings-line-height; |
||||||
|
} |
||||||
|
|
||||||
|
h1, .h1 { |
||||||
|
padding-bottom: .3em; |
||||||
|
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-400; |
||||||
|
font-size: $font-size-h2; |
||||||
|
line-height: 1.225; |
||||||
|
} |
||||||
|
|
||||||
|
h3, .h3 { |
||||||
|
font-size: $font-size-h3; |
||||||
|
line-height: 1.43; |
||||||
|
} |
||||||
|
|
||||||
|
h4, .h4 { |
||||||
|
font-size: $font-size-h4; |
||||||
|
} |
||||||
|
|
||||||
|
h5, .h5 { |
||||||
|
font-size: $font-size-h5; |
||||||
|
} |
||||||
|
|
||||||
|
h6, .h6 { |
||||||
|
color: $gray-700; |
||||||
|
font-size: $font-size-h6; |
||||||
|
} |
||||||
|
|
||||||
|
.text-normal { |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
} |
||||||
|
|
||||||
|
> a:first-child { |
||||||
|
+ h1, |
||||||
|
+ h2, |
||||||
|
+ h3, |
||||||
|
+ h4, |
||||||
|
+ h5, |
||||||
|
+ h6 { |
||||||
|
margin-top: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> a:target { |
||||||
|
+ h2, |
||||||
|
+ h3, |
||||||
|
+ h4, |
||||||
|
+ h5, |
||||||
|
+ h6 { |
||||||
|
&::before { |
||||||
|
content: "#"; |
||||||
|
display: inline-block; |
||||||
|
width: .7em; |
||||||
|
margin-left: -.7em; |
||||||
|
color: $headings-anchor-color-active; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> :last-child { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
|
||||||
|
blockquote { |
||||||
|
margin-bottom: 1em; |
||||||
|
|
||||||
|
> :first-child { |
||||||
|
margin-top: 0; |
||||||
|
} |
||||||
|
|
||||||
|
> :last-child { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.contextual { |
||||||
|
a { |
||||||
|
opacity: $icon-opacity; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
opacity: $icon-hover-opacity; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
word-break: break-all; |
||||||
|
word-break: break-word; |
||||||
|
} |
||||||
|
|
||||||
|
p, |
||||||
|
ul, |
||||||
|
ol { |
||||||
|
margin-bottom: 1em; |
||||||
|
} |
||||||
|
|
||||||
|
ul, |
||||||
|
ol { |
||||||
|
padding-left: 1.5em; |
||||||
|
|
||||||
|
ul, |
||||||
|
ol { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
li > p { |
||||||
|
margin-top: .25em; |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
|
||||||
|
table { |
||||||
|
display: block; |
||||||
|
width: 100%; |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
overflow: auto; |
||||||
|
word-break: normal; |
||||||
|
word-break: keep-all; |
||||||
|
} |
||||||
|
|
||||||
|
// Textile |
||||||
|
tbody:first-child tr:nth-child(2n), |
||||||
|
// Markdown |
||||||
|
thead + tbody tr:nth-child(2n-1) { |
||||||
|
background-color: $table-bg-accent; |
||||||
|
} |
||||||
|
|
||||||
|
td, |
||||||
|
th { |
||||||
|
padding: $table-cell-padding; |
||||||
|
border: 1px solid $table-border-color; |
||||||
|
} |
||||||
|
|
||||||
|
.noborder, |
||||||
|
.wiki-class-noborder { |
||||||
|
border: 0 none; |
||||||
|
|
||||||
|
td, |
||||||
|
th { |
||||||
|
border: 0 none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
a.new { |
||||||
|
color: $brand-danger; |
||||||
|
} |
||||||
|
|
||||||
|
code { |
||||||
|
padding: .2em .33em; |
||||||
|
border-radius: $border-radius-base; |
||||||
|
background-color: rgba($gray-500, .3); |
||||||
|
font-size: $font-size-small; |
||||||
|
} |
||||||
|
|
||||||
|
pre { |
||||||
|
width: auto; |
||||||
|
margin-bottom: 1.15em; |
||||||
|
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 { |
||||||
|
padding: 0; |
||||||
|
border-radius: 0; |
||||||
|
background-color: transparent; |
||||||
|
font-size: 1em; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
img { |
||||||
|
max-width: 100%; |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
|
||||||
|
.toc { |
||||||
|
display: table; |
||||||
|
max-width: 45%; |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
margin-left: 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; |
||||||
|
|
||||||
|
a { |
||||||
|
color: $toc-link; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
text-decoration: none; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
color: $toc-link-hover; |
||||||
|
text-decoration: underline; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.right { |
||||||
|
margin-right: 0; |
||||||
|
margin-left: $line-height-computed; |
||||||
|
float: right; |
||||||
|
} |
||||||
|
|
||||||
|
&.left { |
||||||
|
margin-right: $line-height-computed; |
||||||
|
margin-left: 0; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
ul { |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
font-size: $font-size-small; |
||||||
|
|
||||||
|
ul { |
||||||
|
font-size: 1em; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
li { |
||||||
|
// stylelint-disable selector-max-compound-selectors |
||||||
|
margin: 0; |
||||||
|
|
||||||
|
li { |
||||||
|
margin-left: 1.5em; |
||||||
|
list-style-type: disc; |
||||||
|
|
||||||
|
li { |
||||||
|
list-style-type: circle; |
||||||
|
|
||||||
|
li { |
||||||
|
list-style-type: square; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.toc-active-prev + .toc { |
||||||
|
padding-left: $padding-large-horizontal; |
||||||
|
border-left: 4px solid $toc-active-border; |
||||||
|
|
||||||
|
a { |
||||||
|
color: $toc-active-link; |
||||||
|
|
||||||
|
&:focus, |
||||||
|
&:hover { |
||||||
|
color: $toc-active-link-hover; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
h1, |
||||||
|
h2, |
||||||
|
h3, |
||||||
|
h4, |
||||||
|
h5, |
||||||
|
h6 { |
||||||
|
.wiki-anchor { |
||||||
|
display: none; |
||||||
|
margin-left: 5px; |
||||||
|
color: $headings-anchor-color !important; // stylelint-disable-line declaration-no-important |
||||||
|
text-decoration: none !important; // stylelint-disable-line declaration-no-important |
||||||
|
} |
||||||
|
|
||||||
|
&:hover { |
||||||
|
.wiki-anchor { |
||||||
|
display: inline; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
img { |
||||||
|
display: inline-block; |
||||||
|
max-width: 100%; |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
p.footnote { |
||||||
|
margin-bottom: 5px; |
||||||
|
|
||||||
|
&::before { |
||||||
|
content: ""; |
||||||
|
display: block; |
||||||
|
width: 300px; |
||||||
|
margin-top: $line-height-computed; |
||||||
|
padding-top: $line-height-computed * .5; |
||||||
|
border-top: 1px solid $gray-400; |
||||||
|
} |
||||||
|
|
||||||
|
+ p.footnote::before { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ltr, |
||||||
|
.wiki-class-ltr { |
||||||
|
direction: ltr; |
||||||
|
} |
||||||
|
|
||||||
|
.rtl, |
||||||
|
.wiki-class-rtl { |
||||||
|
direction: rtl; |
||||||
|
} |
||||||
|
|
||||||
|
.preview { |
||||||
|
margin-top: $line-height-computed; |
||||||
|
padding: $padding-wiki; |
||||||
|
border: 1px solid $gray-400; |
||||||
|
background-color: $body-bg; |
||||||
|
} |
||||||
|
|
||||||
|
#wiki_add_attachment { |
||||||
|
padding-top: $line-height-computed; |
||||||
|
border-top: 1px solid $gray-400; |
||||||
|
|
||||||
|
> p { |
||||||
|
margin-bottom: 0; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
> form { |
||||||
|
padding-top: $line-height-computed; |
||||||
|
clear: left; |
||||||
|
} |
||||||
|
|
||||||
|
.collapsible & { |
||||||
|
padding-top: 0; |
||||||
|
border-top: 0; |
||||||
|
|
||||||
|
> form { |
||||||
|
padding-top: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// |
||||||
|
// Custom classes for Bootstrap-like features |
||||||
|
// -------------------------------------------------- |
||||||
|
|
||||||
|
|
||||||
|
// Pager |
||||||
|
// see: http://getbootstrap.com/components/#pagination-pager |
||||||
|
|
||||||
|
.wiki-pager { |
||||||
|
> a { |
||||||
|
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) * .5; |
||||||
|
background-color: $body-bg; |
||||||
|
line-height: 1; |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus, |
||||||
|
&:active { |
||||||
|
background-color: $btn-default-bg; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.wiki-pager--aligned { |
||||||
|
overflow: hidden; |
||||||
|
|
||||||
|
> a:first-child { |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
> a:last-child { |
||||||
|
float: right; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Typographic helper classes |
||||||
|
// |
||||||
|
|
||||||
|
// Lead body copy |
||||||
|
// see: http://getbootstrap.com/css/#lead-body-copy |
||||||
|
|
||||||
|
.lead { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
font-size: floor(($font-size-base * 1.15)); |
||||||
|
font-weight: 300; |
||||||
|
line-height: 1.4; |
||||||
|
|
||||||
|
@media (min-width: $screen-sm-min) { |
||||||
|
font-size: ($font-size-base * 1.5); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// Alignment |
||||||
|
// see: http://getbootstrap.com/css/#type-alignment |
||||||
|
|
||||||
|
.text-left { text-align: left; } |
||||||
|
.text-right { text-align: right; } |
||||||
|
.text-center { text-align: center; } |
||||||
|
.text-justify { text-align: justify; } |
||||||
|
.text-nowrap { white-space: nowrap; } |
||||||
|
|
||||||
|
|
||||||
|
// Transformation |
||||||
|
// see: http://getbootstrap.com/css/#type-transformation |
||||||
|
|
||||||
|
.text-lowercase { text-transform: lowercase; } |
||||||
|
.text-uppercase { text-transform: uppercase; } |
||||||
|
.text-capitalize { text-transform: capitalize; } |
||||||
|
|
||||||
|
|
||||||
|
// Other helper classes |
||||||
|
// see: http://getbootstrap.com/css/#helper-classes |
||||||
|
|
||||||
|
.text-muted { color: $gray-600; } |
||||||
|
.text-primary { color: $brand-primary; } |
||||||
|
.text-success { color: $brand-success; } |
||||||
|
.text-info { color: $brand-info; } |
||||||
|
.text-warning { color: $brand-warning; } |
||||||
|
.text-danger { color: $brand-danger; } |
||||||
|
|
||||||
|
.bg-primary { background-color: $brand-primary; color: $brand-text; } |
||||||
|
.bg-success { background-color: $state-success; } |
||||||
|
.bg-info { background-color: $state-info; } |
||||||
|
.bg-warning { background-color: $state-warning; } |
||||||
|
.bg-danger { background-color: $state-danger; } |
||||||
|
|
||||||
|
p { |
||||||
|
&.bg-primary, |
||||||
|
&.bg-success, |
||||||
|
&.bg-info, |
||||||
|
&.bg-warning, |
||||||
|
&.bg-danger { |
||||||
|
padding: $panel-body-padding; |
||||||
|
} |
||||||
|
} |
@ -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); |
||||||
|
} |
@ -0,0 +1,93 @@ |
|||||||
|
@if $enable-sidebar-toggler { |
||||||
|
#main { |
||||||
|
// Fix full screen view for dashboard plugin |
||||||
|
// https://github.com/jgraichen/redmine_dashboard |
||||||
|
@at-root .controller-rdb_taskboard & { |
||||||
|
position: static; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#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-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; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,8 @@ |
|||||||
|
/*! |
||||||
|
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome |
||||||
|
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) |
||||||
|
*/ |
||||||
|
|
||||||
|
@import "font-awesome/variables"; |
||||||
|
@import "font-awesome/mixins"; |
||||||
|
@import "font-awesome/path"; |
@ -0,0 +1,339 @@ |
|||||||
|
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ |
||||||
|
|
||||||
|
/* Document |
||||||
|
========================================================================== */ |
||||||
|
|
||||||
|
/** |
||||||
|
* 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 */ |
||||||
|
} |
||||||
|
|
||||||
|
/* Sections |
||||||
|
========================================================================== */ |
||||||
|
|
||||||
|
/** |
||||||
|
* Remove the margin in all browsers. |
||||||
|
*/ |
||||||
|
|
||||||
|
body { |
||||||
|
margin: 0; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Render the `main` element consistently in IE. |
||||||
|
*/ |
||||||
|
|
||||||
|
main { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
/* Grouping content |
||||||
|
========================================================================== */ |
||||||
|
|
||||||
|
/** |
||||||
|
* 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 */ |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 1. Correct the inheritance and scaling of font size in all browsers. |
||||||
|
* 2. Correct the odd `em` font sizing in all browsers. |
||||||
|
*/ |
||||||
|
|
||||||
|
pre { |
||||||
|
font-family: monospace, monospace; /* 1 */ |
||||||
|
font-size: 1em; /* 2 */ |
||||||
|
} |
||||||
|
|
||||||
|
/* Text-level semantics |
||||||
|
========================================================================== */ |
||||||
|
|
||||||
|
/** |
||||||
|
* Remove the gray background on active links in IE 10. |
||||||
|
*/ |
||||||
|
|
||||||
|
a { |
||||||
|
background-color: transparent; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 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: none; /* 1 */ |
||||||
|
text-decoration: underline; /* 2 */ |
||||||
|
text-decoration: underline dotted; /* 2 */ |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Add the correct font weight in Chrome, Edge, and Safari. |
||||||
|
*/ |
||||||
|
|
||||||
|
b, |
||||||
|
strong { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 1. Correct the inheritance and scaling of font size in all browsers. |
||||||
|
* 2. Correct the odd `em` font sizing in all browsers. |
||||||
|
*/ |
||||||
|
|
||||||
|
code, |
||||||
|
kbd, |
||||||
|
samp { |
||||||
|
font-family: monospace, monospace; /* 1 */ |
||||||
|
font-size: 1em; /* 2 */ |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Add the correct font size in all browsers. |
||||||
|
*/ |
||||||
|
|
||||||
|
small { |
||||||
|
font-size: 80%; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Prevent `sub` and `sup` elements from affecting the line height in |
||||||
|
* all browsers. |
||||||
|
*/ |
||||||
|
|
||||||
|
sub, |
||||||
|
sup { |
||||||
|
font-size: 75%; |
||||||
|
line-height: 0; |
||||||
|
position: relative; |
||||||
|
vertical-align: baseline; |
||||||
|
} |
||||||
|
|
||||||
|
sub { |
||||||
|
bottom: -0.25em; |
||||||
|
} |
||||||
|
|
||||||
|
sup { |
||||||
|
top: -0.5em; |
||||||
|
} |
||||||
|
|
||||||
|
/* Embedded content |
||||||
|
========================================================================== */ |
||||||
|
|
||||||
|
/** |
||||||
|
* Remove the border on images inside links in IE 10. |
||||||
|
*/ |
||||||
|
|
||||||
|
img { |
||||||
|
border-style: none; |
||||||
|
} |
||||||
|
|
||||||
|
/* Forms |
||||||
|
========================================================================== */ |
||||||
|
|
||||||
|
/** |
||||||
|
* 1. Change the font styles in all browsers. |
||||||
|
* 2. Remove the margin in Firefox and Safari. |
||||||
|
*/ |
||||||
|
|
||||||
|
button, |
||||||
|
input, |
||||||
|
optgroup, |
||||||
|
select, |
||||||
|
textarea { |
||||||
|
font-family: inherit; /* 1 */ |
||||||
|
font-size: 100%; /* 1 */ |
||||||
|
line-height: 1.15; /* 1 */ |
||||||
|
margin: 0; /* 2 */ |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Show the overflow in IE. |
||||||
|
* 1. Show the overflow in Edge. |
||||||
|
*/ |
||||||
|
|
||||||
|
button, |
||||||
|
input { /* 1 */ |
||||||
|
overflow: visible; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Remove the inheritance of text transform in Edge, Firefox, and IE. |
||||||
|
* 1. Remove the inheritance of text transform in Firefox. |
||||||
|
*/ |
||||||
|
|
||||||
|
button, |
||||||
|
select { /* 1 */ |
||||||
|
text-transform: none; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Correct the inability to style clickable types in iOS and Safari. |
||||||
|
*/ |
||||||
|
|
||||||
|
button, |
||||||
|
[type="button"], |
||||||
|
[type="reset"], |
||||||
|
[type="submit"] { |
||||||
|
-webkit-appearance: button; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Remove the inner border and padding in Firefox. |
||||||
|
*/ |
||||||
|
|
||||||
|
button::-moz-focus-inner, |
||||||
|
[type="button"]::-moz-focus-inner, |
||||||
|
[type="reset"]::-moz-focus-inner, |
||||||
|
[type="submit"]::-moz-focus-inner { |
||||||
|
border-style: none; |
||||||
|
padding: 0; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Restore the focus styles unset by the previous rule. |
||||||
|
*/ |
||||||
|
|
||||||
|
button:-moz-focusring, |
||||||
|
[type="button"]:-moz-focusring, |
||||||
|
[type="reset"]:-moz-focusring, |
||||||
|
[type="submit"]:-moz-focusring { |
||||||
|
outline: 1px dotted ButtonText; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Correct the padding in Firefox. |
||||||
|
*/ |
||||||
|
|
||||||
|
fieldset { |
||||||
|
padding: 0.35em 0.75em 0.625em; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 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 { |
||||||
|
box-sizing: border-box; /* 1 */ |
||||||
|
color: inherit; /* 2 */ |
||||||
|
display: table; /* 1 */ |
||||||
|
max-width: 100%; /* 1 */ |
||||||
|
padding: 0; /* 3 */ |
||||||
|
white-space: normal; /* 1 */ |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 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; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 1. Add the correct box sizing in IE 10. |
||||||
|
* 2. Remove the padding in IE 10. |
||||||
|
*/ |
||||||
|
|
||||||
|
[type="checkbox"], |
||||||
|
[type="radio"] { |
||||||
|
box-sizing: border-box; /* 1 */ |
||||||
|
padding: 0; /* 2 */ |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Correct the cursor style of increment and decrement buttons in Chrome. |
||||||
|
*/ |
||||||
|
|
||||||
|
[type="number"]::-webkit-inner-spin-button, |
||||||
|
[type="number"]::-webkit-outer-spin-button { |
||||||
|
height: auto; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 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; |
||||||
|
} |
@ -0,0 +1,10 @@ |
|||||||
|
// Mixins |
||||||
|
// -------------------------- |
||||||
|
|
||||||
|
@mixin fa-icon() { |
||||||
|
display: inline-block; |
||||||
|
font: normal normal normal 14px/1 FontAwesome; // shortening font declaration |
||||||
|
text-rendering: auto; // optimizelegibility throws things off #1094 |
||||||
|
-webkit-font-smoothing: antialiased; |
||||||
|
-moz-osx-font-smoothing: grayscale; |
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
/* FONT PATH |
||||||
|
* -------------------------- */ |
||||||
|
|
||||||
|
@font-face { |
||||||
|
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.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; |
||||||
|
} |
@ -0,0 +1,801 @@ |
|||||||
|
@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.7.0" !default; |
||||||
|
$fa-border-color: #eee !default; |
||||||
|
$fa-inverse: #fff !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"; |
||||||
|
$fa-var-angle-double-down: "\f103"; |
||||||
|
$fa-var-angle-double-left: "\f100"; |
||||||
|
$fa-var-angle-double-right: "\f101"; |
||||||
|
$fa-var-angle-double-up: "\f102"; |
||||||
|
$fa-var-angle-down: "\f107"; |
||||||
|
$fa-var-angle-left: "\f104"; |
||||||
|
$fa-var-angle-right: "\f105"; |
||||||
|
$fa-var-angle-up: "\f106"; |
||||||
|
$fa-var-apple: "\f179"; |
||||||
|
$fa-var-archive: "\f187"; |
||||||
|
$fa-var-area-chart: "\f1fe"; |
||||||
|
$fa-var-arrow-circle-down: "\f0ab"; |
||||||
|
$fa-var-arrow-circle-left: "\f0a8"; |
||||||
|
$fa-var-arrow-circle-o-down: "\f01a"; |
||||||
|
$fa-var-arrow-circle-o-left: "\f190"; |
||||||
|
$fa-var-arrow-circle-o-right: "\f18e"; |
||||||
|
$fa-var-arrow-circle-o-up: "\f01b"; |
||||||
|
$fa-var-arrow-circle-right: "\f0a9"; |
||||||
|
$fa-var-arrow-circle-up: "\f0aa"; |
||||||
|
$fa-var-arrow-down: "\f063"; |
||||||
|
$fa-var-arrow-left: "\f060"; |
||||||
|
$fa-var-arrow-right: "\f061"; |
||||||
|
$fa-var-arrow-up: "\f062"; |
||||||
|
$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"; |
||||||
|
$fa-var-bell: "\f0f3"; |
||||||
|
$fa-var-bell-o: "\f0a2"; |
||||||
|
$fa-var-bell-slash: "\f1f6"; |
||||||
|
$fa-var-bell-slash-o: "\f1f7"; |
||||||
|
$fa-var-bicycle: "\f206"; |
||||||
|
$fa-var-binoculars: "\f1e5"; |
||||||
|
$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"; |
||||||
|
$fa-var-building: "\f1ad"; |
||||||
|
$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"; |
||||||
|
$fa-var-caret-down: "\f0d7"; |
||||||
|
$fa-var-caret-left: "\f0d9"; |
||||||
|
$fa-var-caret-right: "\f0da"; |
||||||
|
$fa-var-caret-square-o-down: "\f150"; |
||||||
|
$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"; |
||||||
|
$fa-var-cc-visa: "\f1f0"; |
||||||
|
$fa-var-certificate: "\f0a3"; |
||||||
|
$fa-var-chain: "\f0c1"; |
||||||
|
$fa-var-chain-broken: "\f127"; |
||||||
|
$fa-var-check: "\f00c"; |
||||||
|
$fa-var-check-circle: "\f058"; |
||||||
|
$fa-var-check-circle-o: "\f05d"; |
||||||
|
$fa-var-check-square: "\f14a"; |
||||||
|
$fa-var-check-square-o: "\f046"; |
||||||
|
$fa-var-chevron-circle-down: "\f13a"; |
||||||
|
$fa-var-chevron-circle-left: "\f137"; |
||||||
|
$fa-var-chevron-circle-right: "\f138"; |
||||||
|
$fa-var-chevron-circle-up: "\f139"; |
||||||
|
$fa-var-chevron-down: "\f078"; |
||||||
|
$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"; |
||||||
|
$fa-var-cloud-upload: "\f0ee"; |
||||||
|
$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"; |
||||||
|
$fa-var-cube: "\f1b2"; |
||||||
|
$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"; |
||||||
|
$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"; |
||||||
|
$fa-var-file-archive-o: "\f1c6"; |
||||||
|
$fa-var-file-audio-o: "\f1c7"; |
||||||
|
$fa-var-file-code-o: "\f1c9"; |
||||||
|
$fa-var-file-excel-o: "\f1c3"; |
||||||
|
$fa-var-file-image-o: "\f1c5"; |
||||||
|
$fa-var-file-movie-o: "\f1c8"; |
||||||
|
$fa-var-file-o: "\f016"; |
||||||
|
$fa-var-file-pdf-o: "\f1c1"; |
||||||
|
$fa-var-file-photo-o: "\f1c5"; |
||||||
|
$fa-var-file-picture-o: "\f1c5"; |
||||||
|
$fa-var-file-powerpoint-o: "\f1c4"; |
||||||
|
$fa-var-file-sound-o: "\f1c7"; |
||||||
|
$fa-var-file-text: "\f15c"; |
||||||
|
$fa-var-file-text-o: "\f0f6"; |
||||||
|
$fa-var-file-video-o: "\f1c8"; |
||||||
|
$fa-var-file-word-o: "\f1c2"; |
||||||
|
$fa-var-file-zip-o: "\f1c6"; |
||||||
|
$fa-var-files-o: "\f0c5"; |
||||||
|
$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"; |
||||||
|
$fa-var-flash: "\f0e7"; |
||||||
|
$fa-var-flask: "\f0c3"; |
||||||
|
$fa-var-flickr: "\f16e"; |
||||||
|
$fa-var-floppy-o: "\f0c7"; |
||||||
|
$fa-var-folder: "\f07b"; |
||||||
|
$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"; |
||||||
|
$fa-var-gavel: "\f0e3"; |
||||||
|
$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"; |
||||||
|
$fa-var-jpy: "\f157"; |
||||||
|
$fa-var-jsfiddle: "\f1cc"; |
||||||
|
$fa-var-key: "\f084"; |
||||||
|
$fa-var-keyboard-o: "\f11c"; |
||||||
|
$fa-var-krw: "\f159"; |
||||||
|
$fa-var-language: "\f1ab"; |
||||||
|
$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"; |
||||||
|
$fa-var-level-up: "\f148"; |
||||||
|
$fa-var-life-bouy: "\f1cd"; |
||||||
|
$fa-var-life-buoy: "\f1cd"; |
||||||
|
$fa-var-life-ring: "\f1cd"; |
||||||
|
$fa-var-life-saver: "\f1cd"; |
||||||
|
$fa-var-lightbulb-o: "\f0eb"; |
||||||
|
$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"; |
||||||
|
$fa-var-list-ol: "\f0cb"; |
||||||
|
$fa-var-list-ul: "\f0ca"; |
||||||
|
$fa-var-location-arrow: "\f124"; |
||||||
|
$fa-var-lock: "\f023"; |
||||||
|
$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"; |
||||||
|
$fa-var-paper-plane: "\f1d8"; |
||||||
|
$fa-var-paper-plane-o: "\f1d9"; |
||||||
|
$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: "\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"; |
||||||
|
$fa-var-play-circle: "\f144"; |
||||||
|
$fa-var-play-circle-o: "\f01d"; |
||||||
|
$fa-var-plug: "\f1e6"; |
||||||
|
$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"; |
||||||
|
$fa-var-rocket: "\f135"; |
||||||
|
$fa-var-rotate-left: "\f0e2"; |
||||||
|
$fa-var-rotate-right: "\f01e"; |
||||||
|
$fa-var-rouble: "\f158"; |
||||||
|
$fa-var-rss: "\f09e"; |
||||||
|
$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"; |
||||||
|
$fa-var-share-square: "\f14d"; |
||||||
|
$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"; |
||||||
|
$fa-var-sort-alpha-desc: "\f15e"; |
||||||
|
$fa-var-sort-amount-asc: "\f160"; |
||||||
|
$fa-var-sort-amount-desc: "\f161"; |
||||||
|
$fa-var-sort-asc: "\f0de"; |
||||||
|
$fa-var-sort-desc: "\f0dd"; |
||||||
|
$fa-var-sort-down: "\f0dd"; |
||||||
|
$fa-var-sort-numeric-asc: "\f162"; |
||||||
|
$fa-var-sort-numeric-desc: "\f163"; |
||||||
|
$fa-var-sort-up: "\f0de"; |
||||||
|
$fa-var-soundcloud: "\f1be"; |
||||||
|
$fa-var-space-shuttle: "\f197"; |
||||||
|
$fa-var-spinner: "\f110"; |
||||||
|
$fa-var-spoon: "\f1b1"; |
||||||
|
$fa-var-spotify: "\f1bc"; |
||||||
|
$fa-var-square: "\f0c8"; |
||||||
|
$fa-var-square-o: "\f096"; |
||||||
|
$fa-var-stack-exchange: "\f18d"; |
||||||
|
$fa-var-stack-overflow: "\f16c"; |
||||||
|
$fa-var-star: "\f005"; |
||||||
|
$fa-var-star-half: "\f089"; |
||||||
|
$fa-var-star-half-empty: "\f123"; |
||||||
|
$fa-var-star-half-full: "\f123"; |
||||||
|
$fa-var-star-half-o: "\f123"; |
||||||
|
$fa-var-star-o: "\f006"; |
||||||
|
$fa-var-steam: "\f1b6"; |
||||||
|
$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"; |
||||||
|
$fa-var-tablet: "\f10a"; |
||||||
|
$fa-var-tachometer: "\f0e4"; |
||||||
|
$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"; |
||||||
|
$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"; |
||||||
|
$fa-var-thumbs-o-up: "\f087"; |
||||||
|
$fa-var-thumbs-up: "\f164"; |
||||||
|
$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"; |
||||||
|
$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"; |
||||||
|
$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"; |
||||||
|
$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"; |
||||||
|
|
@ -0,0 +1,58 @@ |
|||||||
|
// 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; |
||||||
|
} |
||||||
|
|
||||||
|
@mixin button-variant($color, $bg, $border) { |
||||||
|
$correction: 1; |
||||||
|
@if hue($bg) > 120 and hue($bg) < 160 or lightness($bg) > 90 { |
||||||
|
$correction: .5; |
||||||
|
} |
||||||
|
$normal-shadow: darken($border, 12% * $correction); |
||||||
|
$focus-bg: darken($bg, 12% * $correction); |
||||||
|
$focus-border: darken($border, 12% * $correction); |
||||||
|
$focus-shadow: darken($focus-border, 12% * $correction); |
||||||
|
$active-bg: darken($bg, 12% * $correction); |
||||||
|
$active-border: darken($border, 15% * $correction); |
||||||
|
$active-shadow: inset 0 3px 4px -2px $active-border; |
||||||
|
|
||||||
|
@if lightness($bg) > 98 { |
||||||
|
$focus-bg: darken($bg, 5%); |
||||||
|
$focus-border: darken($border, 5%); |
||||||
|
$normal-shadow: none; |
||||||
|
$focus-shadow: none; |
||||||
|
} |
||||||
|
|
||||||
|
background-color: $bg; |
||||||
|
color: $color; |
||||||
|
@if $normal-shadow == "none" { |
||||||
|
border-color: $border; |
||||||
|
box-shadow: none; |
||||||
|
} @else { |
||||||
|
border-color: $border $border $normal-shadow; |
||||||
|
box-shadow: 0 1px 0 $normal-shadow; |
||||||
|
} |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus { |
||||||
|
background-color: $focus-bg; |
||||||
|
color: $color; |
||||||
|
@if $focus-shadow == "none" { |
||||||
|
border-color: $focus-border; |
||||||
|
box-shadow: none; |
||||||
|
} @else { |
||||||
|
border-color: $focus-border $focus-border $focus-shadow; |
||||||
|
box-shadow: 0 1px 0 $focus-shadow; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&:active { |
||||||
|
transform: translate(0, 1px); |
||||||
|
border-color: $active-border; |
||||||
|
background-color: $active-bg; |
||||||
|
box-shadow: $active-shadow; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,7 @@ |
|||||||
|
// Center-align a block level element |
||||||
|
|
||||||
|
@mixin center-block() { |
||||||
|
display: block; |
||||||
|
margin-right: auto; |
||||||
|
margin-left: auto; |
||||||
|
} |
@ -0,0 +1,15 @@ |
|||||||
|
// Clearfix |
||||||
|
// |
||||||
|
// Source: http://cssmojo.com/the-very-latest-clearfix-reloaded/ |
||||||
|
|
||||||
|
@mixin clearfix() { |
||||||
|
&::after { |
||||||
|
content: ""; |
||||||
|
display: block; |
||||||
|
clear: both; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
%clearfix { |
||||||
|
@include clearfix; |
||||||
|
} |
@ -0,0 +1,78 @@ |
|||||||
|
// Form control focus state |
||||||
|
// |
||||||
|
@mixin form-control-focus($color: $input-border-focus) { |
||||||
|
&:focus { |
||||||
|
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 0 2px rgba($input-border-focus, $input-shadow-focus-alpha); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// Placeholder text |
||||||
|
// |
||||||
|
@mixin placeholder($color: $input-color-placeholder) { |
||||||
|
&::placeholder { |
||||||
|
opacity: 1; // See https://github.com/twbs/bootstrap/pull/11526 |
||||||
|
color: $color; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// Form control sizing |
||||||
|
// |
||||||
|
@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) { |
||||||
|
#{$parent} { |
||||||
|
height: $input-height; |
||||||
|
padding: $padding-vertical $padding-horizontal; |
||||||
|
border-radius: $border-radius; |
||||||
|
font-size: $font-size; |
||||||
|
line-height: $line-height; |
||||||
|
} |
||||||
|
|
||||||
|
select#{$parent} { |
||||||
|
height: $input-height; |
||||||
|
line-height: $input-height; |
||||||
|
} |
||||||
|
|
||||||
|
textarea#{$parent}, |
||||||
|
select[multiple]#{$parent} { |
||||||
|
height: auto; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@mixin check() { |
||||||
|
@extend %clearfix; |
||||||
|
position: relative; |
||||||
|
padding-left: $check-input-gutter; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
line-height: $line-height-base; |
||||||
|
text-align: 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; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,15 @@ |
|||||||
|
// Retina image |
||||||
|
// |
||||||
|
|
||||||
|
@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) { |
||||||
|
background-image: url("#{$file-2x}"); |
||||||
|
background-size: $width-1x $height-1x; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,67 @@ |
|||||||
|
// Priority icon |
||||||
|
|
||||||
|
@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; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@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))); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// Tracker highlight |
||||||
|
|
||||||
|
@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} { |
||||||
|
background-color: $background; |
||||||
|
color: $color; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
@if hue($background) > 15deg and hue($background) < 40deg { |
||||||
|
background-color: darken(adjust-hue($background, -8deg), 8%); |
||||||
|
} @else { |
||||||
|
background-color: darken($background, 10%); |
||||||
|
} |
||||||
|
color: $color; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
a#{$parent} { |
||||||
|
&.closed { |
||||||
|
color: mix($color, $background, 75%); |
||||||
|
|
||||||
|
&::after { |
||||||
|
border-top-color: rgba($color, .95); |
||||||
|
} |
||||||
|
|
||||||
|
&:hover::after { |
||||||
|
border-top-color: rgba($color, .25); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
tr#{$parent} .id > a { |
||||||
|
&::before { |
||||||
|
color: mix($color, $background, 50%); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
// Link variant |
||||||
|
|
||||||
|
@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 { |
||||||
|
&::before { |
||||||
|
color: map-get($colors, hover); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
// Some really nice looking shadows |
||||||
|
|
||||||
|
@mixin nice-shadow($depth: 1) { |
||||||
|
$shadow: none; |
||||||
|
|
||||||
|
@if ($depth == 1) { |
||||||
|
$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; |
||||||
|
} |
@ -0,0 +1,8 @@ |
|||||||
|
// Text overflow |
||||||
|
// Requires inline-block or block for proper styling |
||||||
|
|
||||||
|
@mixin text-overflow() { |
||||||
|
overflow: hidden; |
||||||
|
text-overflow: ellipsis; |
||||||
|
white-space: nowrap; |
||||||
|
} |
@ -0,0 +1,2 @@ |
|||||||
|
@import "../../variables"; |
||||||
|
@import "../../mixins"; |
@ -0,0 +1,328 @@ |
|||||||
|
@import "common"; |
||||||
|
|
||||||
|
html { |
||||||
|
height: 100%; |
||||||
|
overflow-y: scroll; |
||||||
|
} |
||||||
|
|
||||||
|
body { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
background-color: mix($gray-400, $header-bg, 70%); |
||||||
|
color: $text-color; |
||||||
|
font-family: $font-family-base; |
||||||
|
font-size: $font-size-base; |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
line-height: $line-height-base; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
color: $link-color; |
||||||
|
text-decoration: none; |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus { |
||||||
|
color: $link-hover-color; |
||||||
|
text-decoration: $link-hover-decoration; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.issue.closed { |
||||||
|
color: $link-color-issue-closed; |
||||||
|
text-decoration: $link-closed-decoration; |
||||||
|
} |
||||||
|
|
||||||
|
.project.closed { |
||||||
|
color: $link-color-project-closed; |
||||||
|
} |
||||||
|
|
||||||
|
.user.locked { |
||||||
|
color: $link-color-user-locked; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Form elements |
||||||
|
// |
||||||
|
|
||||||
|
button, |
||||||
|
input, |
||||||
|
select, |
||||||
|
textarea { |
||||||
|
box-sizing: border-box; |
||||||
|
font-family: inherit; |
||||||
|
font-size: $font-size-base; |
||||||
|
line-height: $line-height-base; |
||||||
|
} |
||||||
|
|
||||||
|
select, |
||||||
|
textarea, |
||||||
|
input[type="search"], |
||||||
|
input[type="text"], |
||||||
|
input.name, |
||||||
|
input.editor, |
||||||
|
#col_width input { |
||||||
|
@include form-control-focus; |
||||||
|
@include placeholder; |
||||||
|
height: $input-height-base; |
||||||
|
padding: $input-padding-vertical $input-padding-horizontal; |
||||||
|
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; |
||||||
|
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075); |
||||||
|
color: $input-color; |
||||||
|
} |
||||||
|
|
||||||
|
textarea { |
||||||
|
height: auto; |
||||||
|
resize: vertical; |
||||||
|
} |
||||||
|
|
||||||
|
select:-moz-focusring { |
||||||
|
color: transparent; |
||||||
|
text-shadow: 0 0 0 #000; |
||||||
|
} |
||||||
|
|
||||||
|
button.ui-multiselect { |
||||||
|
box-sizing: border-box; |
||||||
|
height: $input-height-base; |
||||||
|
padding: $input-padding-vertical $input-padding-horizontal; |
||||||
|
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; |
||||||
|
cursor: default; |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus { |
||||||
|
color: $input-color; |
||||||
|
} |
||||||
|
|
||||||
|
&:active { |
||||||
|
transform: translate(0, 0); |
||||||
|
} |
||||||
|
|
||||||
|
&.ui-state-active { |
||||||
|
border-color: $input-border-focus; |
||||||
|
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 5px rgba($input-border-focus, .5); |
||||||
|
} |
||||||
|
|
||||||
|
.ui-icon { |
||||||
|
margin-top: 1px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Top toolbar |
||||||
|
// |
||||||
|
|
||||||
|
#toolbar { |
||||||
|
@include clearfix; |
||||||
|
display: block; |
||||||
|
position: relative; |
||||||
|
z-index: 1000; |
||||||
|
padding: 10px $padding-side; |
||||||
|
overflow: hidden; |
||||||
|
background-color: $main-menu-bg; |
||||||
|
box-shadow: $panel-shadow; |
||||||
|
|
||||||
|
.breadcrumbs { |
||||||
|
margin-right: 10px; |
||||||
|
float: left; |
||||||
|
|
||||||
|
select { |
||||||
|
margin-right: 5px; |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
|
||||||
|
.home { |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.separator { |
||||||
|
position: relative; |
||||||
|
top: -1px; |
||||||
|
padding: 0 .2em; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.userselect { |
||||||
|
position: relative; |
||||||
|
float: left; |
||||||
|
|
||||||
|
ul { |
||||||
|
padding-left: 0; |
||||||
|
} |
||||||
|
|
||||||
|
br { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.links { |
||||||
|
float: right; |
||||||
|
|
||||||
|
input { |
||||||
|
vertical-align: initial; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
padding-left: 5px; |
||||||
|
cursor: pointer; |
||||||
|
user-select: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
input[type="search"], |
||||||
|
input[type="text"], |
||||||
|
select, |
||||||
|
.ui-widget { |
||||||
|
font-family: inherit; |
||||||
|
font-size: inherit; |
||||||
|
} |
||||||
|
|
||||||
|
@media screen and (max-width: $screen-md-max) { |
||||||
|
font-size: $font-size-small; |
||||||
|
|
||||||
|
input[type="search"], |
||||||
|
input[type="text"], |
||||||
|
select, |
||||||
|
.ui-widget { |
||||||
|
$input-padding-vertical-small: 3px; |
||||||
|
$input-padding-horizontal-small: 5px; |
||||||
|
|
||||||
|
height: ($line-height-computed + ($input-padding-vertical-small * 2) + 2); |
||||||
|
padding: $input-padding-vertical-small $input-padding-horizontal-small; |
||||||
|
} |
||||||
|
|
||||||
|
#project_quick_jump_box { |
||||||
|
width: 128px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#refresh { |
||||||
|
.loading & { |
||||||
|
background-image: url("images/bouncer.gif"); |
||||||
|
background-repeat: no-repeat; |
||||||
|
background-position: -6px 1px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Other elements |
||||||
|
// |
||||||
|
|
||||||
|
.clearfix { |
||||||
|
@include clearfix; |
||||||
|
} |
||||||
|
|
||||||
|
#content { |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
overflow: visible; |
||||||
|
} |
||||||
|
|
||||||
|
#helpers, |
||||||
|
.meta, |
||||||
|
.editors { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
// .editor is the classname for field editors of sprint, |
||||||
|
// story, task, impediment. These field editors get created |
||||||
|
// at runtime whenever any of the above models are edited. |
||||||
|
.ui-dialog .editor { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
ul.ui-sortable { |
||||||
|
min-height: 20px; |
||||||
|
} |
||||||
|
|
||||||
|
//== Story tooltip |
||||||
|
// |
||||||
|
|
||||||
|
.ui-tooltip { |
||||||
|
.ui-tooltip-content { |
||||||
|
hr { |
||||||
|
margin-top: $line-height-computed * .5; |
||||||
|
margin-bottom: $line-height-computed * .5; |
||||||
|
border: 0; |
||||||
|
border-top: 1px solid $hr-border; |
||||||
|
} |
||||||
|
|
||||||
|
.wiki-anchor { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.issue-description { |
||||||
|
max-height: 10em; |
||||||
|
margin-top: 12px; |
||||||
|
overflow: hidden; |
||||||
|
text-overflow: ellipsis; |
||||||
|
} |
||||||
|
|
||||||
|
.issue-field { |
||||||
|
margin: 2px 0 0; |
||||||
|
padding-left: 160px; |
||||||
|
overflow: hidden; |
||||||
|
|
||||||
|
&:first-child { |
||||||
|
margin-top: 0; |
||||||
|
} |
||||||
|
|
||||||
|
> label { |
||||||
|
margin-left: -160px; |
||||||
|
padding-right: 5px; |
||||||
|
float: left; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.tooltip_text { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
//== drag-drop effect: disabled dropzones are greyed out |
||||||
|
// |
||||||
|
|
||||||
|
.rb-sortable-disabled, |
||||||
|
.ui-sortable-disabled { |
||||||
|
opacity: .5; |
||||||
|
background-color: $gray-400; |
||||||
|
} |
||||||
|
|
||||||
|
.w-rb-header-collapsed { |
||||||
|
height: 27px; // 14px * .86 * 1.42857 + 2 * 5px |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Fix jQuery-UI datepicker |
||||||
|
// |
||||||
|
|
||||||
|
body { |
||||||
|
.ui-widget { |
||||||
|
&, |
||||||
|
input, |
||||||
|
select, |
||||||
|
textarea, |
||||||
|
button { |
||||||
|
font-family: inherit; |
||||||
|
font-size: inherit; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,113 @@ |
|||||||
|
@import "../common"; |
||||||
|
|
||||||
|
.ui-multiselect { |
||||||
|
padding: 2px 0 2px 4px; |
||||||
|
text-align: left; |
||||||
|
|
||||||
|
span.ui-icon { |
||||||
|
float: right; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ui-multiselect-single .ui-multiselect-checkboxes { |
||||||
|
input { |
||||||
|
position: absolute !important; // stylelint-disable-line declaration-no-important |
||||||
|
top: auto !important; // stylelint-disable-line declaration-no-important |
||||||
|
left: -9999px; |
||||||
|
} |
||||||
|
|
||||||
|
label { |
||||||
|
padding: 5px !important; // stylelint-disable-line declaration-no-important |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ui-multiselect-header { |
||||||
|
margin-bottom: 3px; |
||||||
|
padding: 3px; |
||||||
|
|
||||||
|
ul { |
||||||
|
font-size: $font-size-list; |
||||||
|
|
||||||
|
li { |
||||||
|
padding: 0 10px 0 0; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
text-decoration: none; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
text-decoration: underline; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
span.ui-icon { |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
li.ui-multiselect-close { |
||||||
|
padding-right: 0; |
||||||
|
float: right; |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ui-multiselect-menu { |
||||||
|
@include nice-shadow(2); |
||||||
|
display: none; |
||||||
|
position: absolute; |
||||||
|
z-index: 10000; |
||||||
|
padding: 3px; |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-multiselect-checkboxes { |
||||||
|
position: relative; |
||||||
|
padding-right: 2px; |
||||||
|
overflow-y: scroll; |
||||||
|
|
||||||
|
input[type="checkbox"] { |
||||||
|
top: 0; |
||||||
|
margin: 3px 0 0 -20px; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
label { |
||||||
|
display: block; |
||||||
|
padding: 3px 1px; |
||||||
|
padding-left: 20px + 6px; |
||||||
|
border: 1px solid transparent; |
||||||
|
cursor: default; |
||||||
|
user-select: none; |
||||||
|
|
||||||
|
input { |
||||||
|
position: relative; |
||||||
|
top: 1px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
li { |
||||||
|
clear: both; |
||||||
|
font-size: $font-size-list; |
||||||
|
|
||||||
|
&.ui-multiselect-optgroup-label { |
||||||
|
margin-bottom: 2px; |
||||||
|
border-bottom: 1px solid $panel-border; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
text-align: center; |
||||||
|
|
||||||
|
a { |
||||||
|
display: block; |
||||||
|
margin: 1px 0; |
||||||
|
padding: 3px; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// Remove label borders in IE6 because IE6 does not support transparency |
||||||
|
* html .ui-multiselect-checkboxes label { |
||||||
|
border: 0 none; |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
@import "../common"; |
||||||
|
|
||||||
|
.qtip { |
||||||
|
position: absolute; |
||||||
|
top: -31000px; |
||||||
|
left: -31000px; |
||||||
|
width: auto; |
||||||
|
max-width: 500px; |
||||||
|
outline: none; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-tooltip-content { |
||||||
|
@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; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-tooltip-tip { |
||||||
|
position: absolute; |
||||||
|
z-index: 10; |
||||||
|
margin: 0 auto; |
||||||
|
overflow: hidden; |
||||||
|
border: 0 none; |
||||||
|
border-color: $tooltip-border; |
||||||
|
background: transparent; |
||||||
|
background-color: $tooltip-bg; |
||||||
|
} |
@ -0,0 +1,837 @@ |
|||||||
|
@import "common"; |
||||||
|
|
||||||
|
$header-line-height: floor($line-height-computed * 1.5); |
||||||
|
|
||||||
|
$header-left-width: 30px; |
||||||
|
$header-right-width: 230px; |
||||||
|
$header-right-width-wider: 280px; |
||||||
|
|
||||||
|
$story-left-width: 110px; |
||||||
|
$story-right-width: 110px; |
||||||
|
|
||||||
|
$story-id-width: 51px; |
||||||
|
$story-project-width: 50px; |
||||||
|
$story-status-width: 70px; |
||||||
|
|
||||||
|
$story-tracker-input-width: 100px; |
||||||
|
$story-status-input-width: 85px; |
||||||
|
$story-sp-input-width: 50px; |
||||||
|
|
||||||
|
@mixin rb-tracker($parent, $background, $color) { |
||||||
|
#{$parent} .id .t a { |
||||||
|
background-color: $background; |
||||||
|
color: $color; |
||||||
|
|
||||||
|
&::before { |
||||||
|
color: mix($color, $background, 50%); |
||||||
|
} |
||||||
|
|
||||||
|
&:hover { |
||||||
|
@if hue($background) > 15deg and hue($background) < 40deg { |
||||||
|
background-color: darken(adjust-hue($background, -8deg), 8%); |
||||||
|
} @else { |
||||||
|
background-color: darken($background, 10%); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// Reserved classes are |
||||||
|
// .backlog (used in master_backlog.js to initialize all backlogs) |
||||||
|
// .model (used in backlog.js editable_inplace.js model.js) |
||||||
|
// .sprint (used in backlog.js |
||||||
|
// .stories (used in backlog.js for sortable) |
||||||
|
// .editor |
||||||
|
// .editable (bind click on) |
||||||
|
// .close_sprint (bind click on) |
||||||
|
|
||||||
|
|
||||||
|
//== Fluid, 2-colum layout |
||||||
|
// |
||||||
|
|
||||||
|
#backlogs_container { |
||||||
|
padding: ($padding-side * .5) ($padding-side * .25); |
||||||
|
|
||||||
|
.backlogs-panel-inner { |
||||||
|
padding: 0 ($padding-side * .25); |
||||||
|
} |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-md-min) { |
||||||
|
padding: $padding-side ($padding-side * .5); |
||||||
|
|
||||||
|
.backlogs-panel-inner { |
||||||
|
padding: 0 ($padding-side * .5); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.wrapper { |
||||||
|
position: relative; |
||||||
|
left: 0; |
||||||
|
width: 100%; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
.left-col { |
||||||
|
position: relative; |
||||||
|
left: 0; |
||||||
|
width: 50%; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
.right-col { |
||||||
|
position: relative; |
||||||
|
right: 0; |
||||||
|
width: 50%; |
||||||
|
float: right; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Fixed-Fluid-Fixed layout |
||||||
|
// |
||||||
|
|
||||||
|
.fff-wrapmiddle { |
||||||
|
width: 100%; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
.fff-middle { |
||||||
|
margin-right: $story-right-width; |
||||||
|
margin-left: $story-left-width; |
||||||
|
} |
||||||
|
|
||||||
|
.fff-left { |
||||||
|
width: $story-left-width; |
||||||
|
margin-left: -100%; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
.fff-right { |
||||||
|
width: $story-right-width; |
||||||
|
margin-left: -$story-right-width; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
.header { |
||||||
|
.fff-middle { |
||||||
|
margin-right: $header-right-width; |
||||||
|
margin-left: $header-left-width; |
||||||
|
} |
||||||
|
|
||||||
|
.fff-left { |
||||||
|
width: $header-left-width; |
||||||
|
} |
||||||
|
|
||||||
|
.fff-right { |
||||||
|
width: $header-right-width; |
||||||
|
margin-left: -$header-right-width; |
||||||
|
} |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-md-min) { |
||||||
|
.fff-middle { |
||||||
|
margin-right: $header-right-width-wider; |
||||||
|
} |
||||||
|
|
||||||
|
.fff-right { |
||||||
|
width: $header-right-width-wider; |
||||||
|
margin-left: -$header-right-width-wider; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Just some space at the bottom of the page |
||||||
|
// |
||||||
|
|
||||||
|
#dummy_backlog_container { |
||||||
|
height: 150px; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Base backlog container |
||||||
|
// |
||||||
|
|
||||||
|
#backlogs_container { |
||||||
|
.closedbacklog, |
||||||
|
.backlog { |
||||||
|
@include nice-shadow(1); |
||||||
|
display: block; |
||||||
|
position: relative; |
||||||
|
margin: 0 0 ($padding-side * .5); |
||||||
|
border-radius: $border-radius-large $border-radius-large 0 0; |
||||||
|
background-color: $gray-100; |
||||||
|
|
||||||
|
@media screen and (min-width: $screen-md-min) { |
||||||
|
margin: 0 0 $padding-side; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Backlog header |
||||||
|
// |
||||||
|
|
||||||
|
#backlogs_container { |
||||||
|
.header { |
||||||
|
position: relative; |
||||||
|
height: $header-line-height; |
||||||
|
border: 1px solid darken($header-bg, 5%); |
||||||
|
border-radius: $border-radius-large $border-radius-large 0 0; |
||||||
|
background-color: $header-bg; |
||||||
|
color: $header-text; |
||||||
|
line-height: $header-line-height; |
||||||
|
|
||||||
|
input, |
||||||
|
select { |
||||||
|
border-color: $header-bg; |
||||||
|
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .2); |
||||||
|
|
||||||
|
&:focus { |
||||||
|
border-color: 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; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.name, |
||||||
|
.velocity, |
||||||
|
.date { |
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
|
||||||
|
.name { |
||||||
|
padding-left: $padding-base-horizontal; |
||||||
|
overflow: hidden; |
||||||
|
font-weight: $font-weight-bold; |
||||||
|
} |
||||||
|
|
||||||
|
.date { |
||||||
|
width: 70px; |
||||||
|
float: left; |
||||||
|
font-size: $font-size-small-px; |
||||||
|
text-align: center; |
||||||
|
|
||||||
|
+ .date { |
||||||
|
margin-left: $padding-base-horizontal; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.velocity { |
||||||
|
padding-right: $padding-base-horizontal; |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
|
||||||
|
.id, |
||||||
|
.description, |
||||||
|
.status { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.saving { |
||||||
|
background-image: url("images/ajax.gif"); |
||||||
|
background-repeat: no-repeat; |
||||||
|
background-position: center; |
||||||
|
} |
||||||
|
|
||||||
|
.error { |
||||||
|
background-image: url("images/error.png"); |
||||||
|
background-repeat: no-repeat; |
||||||
|
background-position: center; |
||||||
|
} |
||||||
|
|
||||||
|
.editing { |
||||||
|
$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; |
||||||
|
} |
||||||
|
|
||||||
|
label, |
||||||
|
.id.editor { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.release_end_date.editor, |
||||||
|
.release_start_date.editor, |
||||||
|
.effective_date.editor, |
||||||
|
.sprint_start_date.editor { |
||||||
|
position: relative; |
||||||
|
width: 80px; |
||||||
|
margin-bottom: $editor-padding; |
||||||
|
margin-left: $editor-padding * 2; |
||||||
|
padding: 0; |
||||||
|
float: left; |
||||||
|
font-size: $font-size-small-px; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
|
||||||
|
.name.editor { |
||||||
|
$name-width-minus: $header-right-width-wider + 35px; |
||||||
|
|
||||||
|
position: relative; |
||||||
|
width: calc(100% - #{$name-width-minus}) !important; // stylelint-disable-line declaration-no-important |
||||||
|
min-width: 128px; |
||||||
|
margin-left: $header-line-height - 2px; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
.description.editor { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.edit-actions { |
||||||
|
margin-right: $editor-padding * 2; |
||||||
|
margin-bottom: $editor-padding; |
||||||
|
float: right; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.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; |
||||||
|
border-radius: ($border-radius-large - 1px) 0 0; |
||||||
|
font-size: $font-size-small; |
||||||
|
line-height: $line-height-base; |
||||||
|
cursor: pointer; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
z-index: 1000; |
||||||
|
transition: background-color 0s 0s, border-color 0s 0s; |
||||||
|
border-color: $body-bg; |
||||||
|
background-color: $body-bg; |
||||||
|
} |
||||||
|
|
||||||
|
.icon { |
||||||
|
position: relative; |
||||||
|
top: 7px; |
||||||
|
left: 6px; |
||||||
|
padding: 0; |
||||||
|
background-image: url("images/ui-icons_888888_256x240.png"); |
||||||
|
background-position: -64px -16px; |
||||||
|
} |
||||||
|
|
||||||
|
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; |
||||||
|
box-shadow: 0 2px 1px rgba(#000, .1); |
||||||
|
|
||||||
|
a { |
||||||
|
color: $gray-900; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&:hover .items { |
||||||
|
visibility: visible; |
||||||
|
transition: visibility 0s 0s; |
||||||
|
} |
||||||
|
|
||||||
|
.item { |
||||||
|
position: relative; |
||||||
|
min-width: 100px; |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
> a { |
||||||
|
display: block; |
||||||
|
padding: 4px 8px; |
||||||
|
|
||||||
|
&:hover { |
||||||
|
background-color: $component-active-bg; |
||||||
|
color: $component-active-color; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
> .ui-icon { |
||||||
|
position: absolute; |
||||||
|
top: 4px; |
||||||
|
right: 8px; |
||||||
|
left: auto; |
||||||
|
background-position: -32px -16px; |
||||||
|
} |
||||||
|
|
||||||
|
ul { |
||||||
|
position: absolute; |
||||||
|
top: -($padding-small-vertical + 1px); |
||||||
|
left: 100%; |
||||||
|
border-width: 1px; |
||||||
|
} |
||||||
|
|
||||||
|
&:hover { |
||||||
|
background-color: darken($body-bg, 8%); |
||||||
|
|
||||||
|
ul { |
||||||
|
visibility: visible; |
||||||
|
transition: visibility 0s 0s; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.model.headertext { |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.close_sprint { |
||||||
|
float: left; |
||||||
|
overflow: hidden; |
||||||
|
color: $header-link; |
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
|
||||||
|
.closedbacklog { |
||||||
|
.menu { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.headertext { |
||||||
|
cursor: default; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Backlog items |
||||||
|
// |
||||||
|
|
||||||
|
#backlogs_container { |
||||||
|
.stories { |
||||||
|
position: relative; |
||||||
|
min-height: ($line-height-computed + $table-condensed-cell-padding * 2); |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
list-style: none; |
||||||
|
font-size: $font-size-list; |
||||||
|
|
||||||
|
.v { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.placeholder { |
||||||
|
min-height: ($line-height-computed + $table-condensed-cell-padding * 2); |
||||||
|
background-color: $gray-700; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.story { |
||||||
|
display: block; |
||||||
|
margin: 0; |
||||||
|
padding: 0 $table-condensed-cell-padding; |
||||||
|
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-100; |
||||||
|
} |
||||||
|
|
||||||
|
&:hover { |
||||||
|
background-color: $highlight-bg; |
||||||
|
} |
||||||
|
|
||||||
|
&.saving { |
||||||
|
background-image: url("images/ajax.gif"); |
||||||
|
color: $gray-600; |
||||||
|
} |
||||||
|
|
||||||
|
&.error { |
||||||
|
background-image: url("images/error.png"); |
||||||
|
color: $brand-warning; |
||||||
|
} |
||||||
|
|
||||||
|
.tracker_id { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.id { |
||||||
|
position: relative; |
||||||
|
width: $story-id-width; |
||||||
|
margin: $table-condensed-cell-padding 0; |
||||||
|
float: left; |
||||||
|
|
||||||
|
.t { |
||||||
|
a { |
||||||
|
display: block; |
||||||
|
padding: $tracker-list-padding; |
||||||
|
border-radius: $border-radius-small ($border-radius-small * 3) ($border-radius-small * 3) $border-radius-small; |
||||||
|
@if $color-trackers { |
||||||
|
background-color: $tracker-default-bg; |
||||||
|
color: $tracker-default-text; |
||||||
|
} @else { |
||||||
|
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-600; |
||||||
|
} |
||||||
|
font-weight: $font-weight-normal; |
||||||
|
} |
||||||
|
|
||||||
|
&:hover { |
||||||
|
@if $color-trackers { |
||||||
|
background-color: darken($tracker-default-bg, 10%); |
||||||
|
} @else { |
||||||
|
background-color: $gray-400; |
||||||
|
} |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.fff-left > .project, |
||||||
|
.fff-wrapmiddle > .fff-middle, |
||||||
|
.fff-right > .status_id, |
||||||
|
.fff-right > .story_points { |
||||||
|
min-height: floor(.92 * $font-size-base * $line-height-base); |
||||||
|
} |
||||||
|
|
||||||
|
.project { |
||||||
|
display: block; |
||||||
|
position: relative; |
||||||
|
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; |
||||||
|
|
||||||
|
.t { |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.fff-middle { |
||||||
|
padding: $table-condensed-cell-padding 0; |
||||||
|
} |
||||||
|
|
||||||
|
.subject { |
||||||
|
@include text-overflow; |
||||||
|
} |
||||||
|
|
||||||
|
&.closed .subject { |
||||||
|
text-decoration: line-through; |
||||||
|
} |
||||||
|
|
||||||
|
.status_id { |
||||||
|
width: $story-status-width; |
||||||
|
padding: $table-condensed-cell-padding 0 $table-condensed-cell-padding $table-condensed-cell-padding; |
||||||
|
float: left; |
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
|
||||||
|
.story_points { |
||||||
|
width: $story-right-width - ($story-status-width + $padding-base-horizontal + 1px); |
||||||
|
padding: $table-condensed-cell-padding $table-condensed-cell-padding $table-condensed-cell-padding 0; |
||||||
|
float: left; |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
|
||||||
|
.story_field { |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
|
||||||
|
.fixed_version_id, |
||||||
|
.higher_item_id, |
||||||
|
.story_project, |
||||||
|
.user_status { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
&.editing { |
||||||
|
$input-padding-vertical-small: 3px; |
||||||
|
$input-padding-horizontal-small: 5px; |
||||||
|
|
||||||
|
border-color: $highlight-border; |
||||||
|
background-color: darken($highlight-bg, 10%); |
||||||
|
cursor: default; |
||||||
|
|
||||||
|
+ .story { |
||||||
|
border-top-color: $highlight-border; |
||||||
|
} |
||||||
|
|
||||||
|
input, |
||||||
|
select, |
||||||
|
textarea { |
||||||
|
border-color: $highlight-border; |
||||||
|
|
||||||
|
&:focus { |
||||||
|
border-color: darken($highlight-border, 15%); |
||||||
|
box-shadow: |
||||||
|
inset 0 1px 2px rgba(0, 0, 0, .075), |
||||||
|
0 0 5px rgba(darken($highlight-border, 15%), .5); |
||||||
|
color: $gray-950; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.editors { |
||||||
|
@include clearfix; |
||||||
|
display: block; |
||||||
|
margin-left: $story-tracker-input-width + 5px; |
||||||
|
padding: $table-condensed-cell-padding 0; |
||||||
|
text-align: right; |
||||||
|
|
||||||
|
label { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.editor { |
||||||
|
height: ($line-height-computed + ($input-padding-vertical-small * 2) + 2); |
||||||
|
margin: 0; |
||||||
|
margin-right: 5px; |
||||||
|
padding: $input-padding-vertical-small $input-padding-horizontal-small; |
||||||
|
font-family: inherit; |
||||||
|
font-size: inherit; |
||||||
|
vertical-align: top; |
||||||
|
|
||||||
|
&.tracker_id { |
||||||
|
display: block; |
||||||
|
width: $story-tracker-input-width; |
||||||
|
margin-left: -($story-tracker-input-width + 5px); |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
&.status_id { |
||||||
|
width: $story-status-input-width; |
||||||
|
padding-right: 0; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
&.story_points { |
||||||
|
width: $story-sp-input-width; |
||||||
|
margin-right: 0; |
||||||
|
padding-right: 0; |
||||||
|
float: left; |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
|
||||||
|
&.subject { |
||||||
|
$subject-width-minus: $story-status-input-width + $story-sp-input-width + 5px * 2; |
||||||
|
|
||||||
|
width: calc(100% - #{$subject-width-minus}) !important; // stylelint-disable-line declaration-no-important |
||||||
|
height: 60px; |
||||||
|
float: left; |
||||||
|
overflow: auto; |
||||||
|
white-space: normal; |
||||||
|
} |
||||||
|
|
||||||
|
&.category_id { |
||||||
|
display: block; |
||||||
|
top: 4px; |
||||||
|
left: 456px; |
||||||
|
width: 60px; |
||||||
|
margin: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.story_field { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.project, |
||||||
|
select.project_id.editor { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.edit-actions { |
||||||
|
margin-top: 5px; |
||||||
|
float: right; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.closedbacklog .story { |
||||||
|
cursor: default; |
||||||
|
} |
||||||
|
|
||||||
|
// Override: display story subject in multiple lines |
||||||
|
.rb-multilinesubject & .subject { |
||||||
|
height: auto; |
||||||
|
overflow: show; |
||||||
|
white-space: normal; |
||||||
|
} |
||||||
|
|
||||||
|
@if $color-trackers { |
||||||
|
@each $tracker-id, $tracker-colors in $tracker-colors-map { |
||||||
|
@include rb-tracker( |
||||||
|
".tracker#{$tracker-id}", |
||||||
|
map-get($tracker-colors, background), |
||||||
|
map-get($tracker-colors, color) |
||||||
|
); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Dialog |
||||||
|
// |
||||||
|
|
||||||
|
.ui-dialog { |
||||||
|
.ui-dialog-titlebar-close { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-dialog-title { |
||||||
|
margin-right: 0; |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
&.ui-widget-content { |
||||||
|
@include nice-shadow(5); |
||||||
|
border: 0 none; |
||||||
|
} |
||||||
|
|
||||||
|
.ui-dialog-buttonpane.ui-widget-content { |
||||||
|
border: 0 none; |
||||||
|
} |
||||||
|
|
||||||
|
label { |
||||||
|
display: block; |
||||||
|
width: 100%; |
||||||
|
font-size: 11px; |
||||||
|
text-transform: capitalize; |
||||||
|
} |
||||||
|
|
||||||
|
.editor { |
||||||
|
width: 100%; |
||||||
|
margin-bottom: 10px; |
||||||
|
font-size: 12px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#sprint_editor .description { |
||||||
|
height: 65px; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== In-place Sprint Editor |
||||||
|
// |
||||||
|
|
||||||
|
#backlogs_container { |
||||||
|
|
||||||
|
#backlogs_container .editing .editable { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.editing .edit-actions { |
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
a { |
||||||
|
@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; |
||||||
|
border: 1px solid; |
||||||
|
font-weight: $btn-font-weight; |
||||||
|
text-align: center; |
||||||
|
white-space: nowrap; |
||||||
|
cursor: pointer; |
||||||
|
user-select: none; |
||||||
|
|
||||||
|
&.save { |
||||||
|
@include button-variant($btn-success-color, $btn-success-bg, $btn-success-border); |
||||||
|
} |
||||||
|
|
||||||
|
&.cancel { |
||||||
|
@include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); |
||||||
|
} |
||||||
|
|
||||||
|
+ a { |
||||||
|
margin-left: 3px; |
||||||
|
} |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:active { |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== In-place Story Editor |
||||||
|
// |
||||||
|
|
||||||
|
.debug { |
||||||
|
.story { |
||||||
|
.id, |
||||||
|
.subject, |
||||||
|
.status_id, |
||||||
|
.story_points { |
||||||
|
background-color: #f00; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.header { |
||||||
|
.name, |
||||||
|
.sprint_start_date, |
||||||
|
.effective_date, |
||||||
|
.actions { |
||||||
|
background-color: #f00; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.menu, |
||||||
|
.velocity, |
||||||
|
#new_story { |
||||||
|
background-color: #f00; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Completed sprints |
||||||
|
// |
||||||
|
|
||||||
|
#show_completed_sprints { |
||||||
|
margin-left: $padding-side * .5; |
||||||
|
color: $gray-950; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//== Datepicker bugfix: hide until it opens itself |
||||||
|
// |
||||||
|
|
||||||
|
.ui-datepicker { |
||||||
|
display: none; |
||||||
|
} |
@ -0,0 +1,63 @@ |
|||||||
|
@import "common"; |
||||||
|
|
||||||
|
table { |
||||||
|
th, |
||||||
|
td { |
||||||
|
padding: $table-condensed-cell-padding $table-cell-padding; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.ui-widget { |
||||||
|
margin-bottom: $line-height-computed; |
||||||
|
} |
||||||
|
|
||||||
|
.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; |
||||||
|
} |