clean up icon css, increase base font size, update inst-icons

Fixes: CNVS-37057, CNVS-37327
Refs: CNVS-37056

test plan:
- navigate around canvas to ensure the icons are aligned
  and showing correctly :D

- overall note - icons are now the "line" version vs the
  solid (with this implementation the assignments and
  modules pages have removed the circle with background color
  for better legibility for the icon)

- the overall base font size for canvas has been increased
  to 1rem = 16px (there are still areas that have overriding
  css to manipulate the font size smaller than the base and
  can be addressed individually)

- this bumps inst-icons to a beta version for testing

Change-Id: I5ef389298257122f0c3016e97beff50ed8925df1
Reviewed-on: https://gerrit.instructure.com/114343
Tested-by: Jenkins
Product-Review: Colleen Palmer <colleen@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Reviewed-by: Chris Hart <chart@instructure.com>
This commit is contained in:
Pam Hiett 2017-06-06 07:58:31 -06:00 committed by Pam Hiett
parent bec38f9890
commit c7b6ca55e5
35 changed files with 79 additions and 413 deletions

View File

@ -19,12 +19,12 @@
import React from 'react' import React from 'react'
import PropTypes from 'prop-types' import PropTypes from 'prop-types'
import I18n from 'i18n!custom_help_link' import I18n from 'i18n!custom_help_link'
import IconSettingsLine from 'instructure-icons/lib/Line/IconSettingsLine'
import IconFolderLine from 'instructure-icons/lib/Line/IconFolderLine'
import IconInfoLine from 'instructure-icons/lib/Line/IconInfoLine'
import IconLifePreserverLine from 'instructure-icons/lib/Line/IconLifePreserverLine'
import IconQuestionLine from 'instructure-icons/lib/Line/IconQuestionLine'
import CustomHelpLinkIconInput from './CustomHelpLinkIconInput' import CustomHelpLinkIconInput from './CustomHelpLinkIconInput'
import IconCog from 'jsx/shared/icons/IconCog'
import IconFolder from 'jsx/shared/icons/IconFolder'
import IconInformation from 'jsx/shared/icons/IconInformation'
import IconLifePreserver from 'jsx/shared/icons/IconLifePreserver'
import IconQuestionMark from 'jsx/shared/icons/IconQuestionMark'
const CustomHelpLinkIcons = React.createClass({ const CustomHelpLinkIcons = React.createClass({
propTypes: { propTypes: {
@ -43,36 +43,41 @@ import IconQuestionMark from 'jsx/shared/icons/IconQuestionMark'
<CustomHelpLinkIconInput <CustomHelpLinkIconInput
value="help" value="help"
defaultChecked={defaultValue === 'help'} defaultChecked={defaultValue === 'help'}
label={I18n.t('Question mark icon')}> label={I18n.t('Question mark icon')}
<IconQuestionMark /> >
<IconQuestionLine />
</CustomHelpLinkIconInput> </CustomHelpLinkIconInput>
<CustomHelpLinkIconInput <CustomHelpLinkIconInput
value="information" value="information"
defaultChecked={defaultValue === 'information'} defaultChecked={defaultValue === 'information'}
label={I18n.t('Information icon')}> label={I18n.t('Information icon')}
<IconInformation /> >
<IconInfoLine />
</CustomHelpLinkIconInput> </CustomHelpLinkIconInput>
<CustomHelpLinkIconInput <CustomHelpLinkIconInput
value="folder" value="folder"
defaultChecked={defaultValue === 'folder'} defaultChecked={defaultValue === 'folder'}
label={I18n.t('Folder icon')}> label={I18n.t('Folder icon')}
<IconFolder /> >
<IconFolderLine />
</CustomHelpLinkIconInput> </CustomHelpLinkIconInput>
<CustomHelpLinkIconInput <CustomHelpLinkIconInput
value="cog" value="cog"
defaultChecked={defaultValue === 'cog'} defaultChecked={defaultValue === 'cog'}
label={I18n.t('Cog icon')}> label={I18n.t('Cog icon')}
<IconCog /> >
<IconSettingsLine />
</CustomHelpLinkIconInput> </CustomHelpLinkIconInput>
<CustomHelpLinkIconInput <CustomHelpLinkIconInput
value="lifepreserver" value="lifepreserver"
defaultChecked={defaultValue === 'lifepreserver'} defaultChecked={defaultValue === 'lifepreserver'}
label={I18n.t('Life preserver icon')}> label={I18n.t('Life preserver icon')}
<IconLifePreserver /> >
<IconLifePreserverLine />
</CustomHelpLinkIconInput> </CustomHelpLinkIconInput>
</div> </div>
</fieldset> </fieldset>

View File

@ -25,7 +25,7 @@ import ScreenReaderContent from 'instructure-ui/lib/components/ScreenReaderConte
import PopoverMenu from 'instructure-ui/lib/components/PopoverMenu' import PopoverMenu from 'instructure-ui/lib/components/PopoverMenu'
import { MenuItem, MenuItemGroup, MenuItemSeparator } from 'instructure-ui/lib/components/Menu' import { MenuItem, MenuItemGroup, MenuItemSeparator } from 'instructure-ui/lib/components/Menu'
import Button from 'instructure-ui/lib/components/Button' import Button from 'instructure-ui/lib/components/Button'
import IconSettings2Solid from 'instructure-icons/lib/Solid/IconSettings2Solid' import IconSettings2Line from 'instructure-icons/lib/Line/IconSettings2Line'
import {sharedDashboardInstance} from '../dashboardPlannerHelper' import {sharedDashboardInstance} from '../dashboardPlannerHelper'
@ -163,7 +163,7 @@ export default class DashboardOptionsMenu extends React.Component {
trigger={ trigger={
<Button variant="icon"> <Button variant="icon">
<ScreenReaderContent>{I18n.t('Dashboard Options')}</ScreenReaderContent> <ScreenReaderContent>{I18n.t('Dashboard Options')}</ScreenReaderContent>
<IconSettings2Solid /> <IconSettings2Line />
</Button> </Button>
} }
contentRef={(el) => { this.menuContentRef = el; }} contentRef={(el) => { this.menuContentRef = el; }}

View File

@ -1,114 +0,0 @@
/*
* Copyright (C) 2016 - present Instructure, Inc.
*
* This file is part of Canvas.
*
* Canvas is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, version 3 of the License.
*
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import React from 'react'
import PropTypes from 'prop-types'
import ReactDOM from 'react-dom'
import _ from 'underscore'
var BaseIcon = React.createClass({
propTypes: {
name: PropTypes.string.isRequired,
content: PropTypes.string.isRequired,
viewBox: PropTypes.string.isRequired,
title: PropTypes.string,
desc: PropTypes.string,
width: PropTypes.string,
height: PropTypes.string
},
componentWillMount () {
this.titleId = _.uniqueId('iconTitle_');
this.descId = _.uniqueId('iconDesc_');
},
componentDidMount () {
ReactDOM.findDOMNode(this).setAttribute('focusable', 'false')
},
getDefaultProps () {
return {
width: '1em',
height: '1em'
}
},
getRole () {
if (this.props.title) {
return 'img'
} else {
return 'presentation'
}
},
renderTitle () {
const { title } = this.props
return (title) ? (
<title id={this.titleId}>{title}</title>
) : null
},
renderDesc () {
const { desc } = this.props
return (desc) ? (
<desc id={this.descId}>{desc}</desc>
) : null
},
getLabelledBy () {
const ids = []
if (this.props.title) {
ids.push(this.titleId)
}
if (this.props.desc) {
ids.push(this.descId)
}
return (ids.length > 0) ? ids.join(' ') : null
},
render () {
const {
title,
width,
height,
viewBox,
className
} = this.props
const style = {
fill: 'currentColor'
}
return (
<svg
style={style}
width={width}
height={height}
viewBox={viewBox}
aria-hidden={title ? null : 'true'}
aria-labelledby={this.getLabelledBy()}
role={this.getRole()}>
{this.renderTitle()}
{this.renderDesc()}
<g role="presentation" dangerouslySetInnerHTML={{__html: this.props.content}} />
</svg>
)
}
});
export default BaseIcon

View File

@ -1,40 +0,0 @@
/*
* Copyright (C) 2016 - present Instructure, Inc.
*
* This file is part of Canvas.
*
* Canvas is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, version 3 of the License.
*
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import React from 'react'
import BaseIcon from './BaseIcon'
var IconCog = React.createClass({
render () {
const content = `
<path d="M200 120V80h-22.6c-2.3-9-6.1-17.4-11.2-24.9l15.2-15.2 -21.2-21.2
-15.2 15.2C137.4 28.8 129 25 120 22.6V0H80v22.6c-9 2.3-17.4 6.1-24.9 11.2L39.9
18.7 18.7 39.9l15.2 15.2C28.8 62.6 25 71 22.6 80H0v40h22.6c2.3 9 6.1 17.4 11.2 24.9l-15.2
15.2 21.2 21.2 15.2-15.2c7.5 5.1 15.9 8.9 24.9 11.2V200h40v-22.6c9-2.3 17.4-6.1 24.9-11.2l15.2
15.2 21.2-21.2 -15.2-15.2c5.1-7.5 8.9-15.9 11.2-24.9H200zM100 160c-33.1 0-60-26.9-60-60 0-33.1
26.9-60 60-60s60 26.9 60 60C160 133.1 133.1 160 100 160z"/>
`;
return (
<BaseIcon
{...this.props}
name="IconCog"
viewBox="0 0 200 200" content={content} />
)
}
});
export default IconCog

View File

@ -1,36 +0,0 @@
/*
* Copyright (C) 2016 - present Instructure, Inc.
*
* This file is part of Canvas.
*
* Canvas is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, version 3 of the License.
*
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import React from 'react'
import BaseIcon from './BaseIcon'
var IconFolder = React.createClass({
render () {
const content = `
<path d="M180 45H97.5L81 23c-3.8-5-9.7-8-16-8H20C9 15 0 24 0 35v130c0 11 9 20 20 20h160c11 0 20-9
20-20V65C200 54 191 45 180 45zM20 165V35h45l16.5 22c3.8 5 9.7 8 16 8H180l0 100H20z"/>
`;
return (
<BaseIcon
{...this.props}
name="IconFolder"
viewBox="0 0 200 200" content={content} />
)
}
});
export default IconFolder

View File

@ -1,38 +0,0 @@
/*
* Copyright (C) 2016 - present Instructure, Inc.
*
* This file is part of Canvas.
*
* Canvas is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, version 3 of the License.
*
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import React from 'react'
import BaseIcon from './BaseIcon'
var IconInformation = React.createClass({
render () {
const content = `
<path d="M100 200C44.9 200 0 155.1 0 100 0 44.9 44.9 0 100 0s100 44.9 100 100C200 155.1 155.1 200 100
200zM100 20c-44.1 0-80 35.9-80 80s35.9 80 80 80 80-35.9 80-80S144.1 20 100 20z"/>
<path d="M110 130V90c0-5.5-4.5-10-10-10H80v20h10v30H70v20h60v-20H110z"/>
<circle cx="100" cy="60" r="12.5"/>
`;
return (
<BaseIcon
{...this.props}
name="IconInformation"
viewBox="0 0 200 200" content={content} />
)
}
});
export default IconInformation

View File

@ -1,41 +0,0 @@
/*
* Copyright (C) 2016 - present Instructure, Inc.
*
* This file is part of Canvas.
*
* Canvas is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, version 3 of the License.
*
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import React from 'react'
import BaseIcon from './BaseIcon'
var IconLifePreserver = React.createClass({
render () {
const content = `
<path d="M190 80h-2.3C180 46.4 153.6 20 120 12.3V10c0-5.5-4.5-10-10-10H90c-5.5 0-10 4.5-10 10v2.3C46.4
20 20 46.4 12.3 80H10C4.5 80 0 84.5 0 90v20c0 5.5 4.5 10 10 10h2.3c7.7 33.6 34.1 60 67.7 67.7v2.3c0
5.5 4.5 10 10 10h20c5.5 0 10-4.5 10-10v-2.3c33.6-7.7 60-34.1 67.7-67.7h2.3c5.5 0 10-4.5 10-10V90C200
84.5 195.5 80 190 80zM167.1 80h-32.6c-3.5-6-8.4-10.9-14.4-14.4V32.9C142.5 39.7 160.3 57.5 167.1 80zM100
120c-11 0-20-9-20-20s9-20 20-20c11 0 20 9 20 20S111 120 100 120zM80 32.9v32.6C74 69.1 69.1 74 65.6
80H32.9C39.7 57.5 57.5 39.7 80 32.9zM32.9 120h32.6c3.5 6 8.4 10.9 14.4 14.4v32.6C57.5 160.3 39.7 142.5
32.9 120zM120 167.1v-32.6c6-3.5 10.9-8.4 14.4-14.4h32.6C160.3 142.5 142.5 160.3 120 167.1z"/>
`;
return (
<BaseIcon
{...this.props}
name="IconLifePreserver"
viewBox="0 0 200 200" content={content} />
)
}
});
export default IconLifePreserver

View File

@ -1,39 +0,0 @@
/*
* Copyright (C) 2016 - present Instructure, Inc.
*
* This file is part of Canvas.
*
* Canvas is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, version 3 of the License.
*
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import React from 'react'
import BaseIcon from './BaseIcon'
var IconQuestionMark = React.createClass({
render () {
const content = `
<path d="M100 200C44.9 200 0 155.1 0 100 0 44.9 44.9 0 100 0s100 44.9 100 100C200 155.1 155.1 200
100 200zM100 20c-44.1 0-80 35.9-80 80s35.9 80 80 80 80-35.9 80-80S144.1 20 100 20z"/>
<path d="M110 130H90v-30h10c11 0 20-9 20-20 0-11-9-20-20-20s-20 9-20 20H60c0-22.1 17.9-40 40-40s40
17.9 40 40c0 18.6-12.8 34.3-30 38.7V130z"/>
<circle cx="100" cy="150" r="12.5"/>
`;
return (
<BaseIcon
{...this.props}
name="IconQuestionMark"
viewBox="0 0 200 200" content={content} />
)
}
});
export default IconQuestionMark

View File

@ -174,7 +174,7 @@ $ic-font-family-fallback: "Helvetica Neue", Helvetica, Arial, sans-serif;
$ic-font-weight: bold; // we can phase this var out now we're on Lato $ic-font-weight: bold; // we can phase this var out now we're on Lato
$ic-font-size: 14px; $ic-font-size: 16px;
$ic-font-size--xlarge: $ic-font-size + 14; $ic-font-size--xlarge: $ic-font-size + 14;
$ic-font-size--large: $ic-font-size + 9; $ic-font-size--large: $ic-font-size + 9;

View File

@ -72,11 +72,9 @@
// $new-icon-size parameter // $new-icon-size parameter
@mixin overwrite-default-icon-size($new-icon-size) { @mixin overwrite-default-icon-size($new-icon-size) {
i[class*=icon-], i[class^=icon-] { i[class*=icon-], i[class^=icon-] {
width: auto; height: auto;
line-height: 1; line-height: 1;
&:before { &:before {
font-size: $new-icon-size; font-size: $new-icon-size;
top: 0;
} }
} }
} }

View File

@ -79,7 +79,7 @@ Either use `<a>` with icon desired icon class added or insert `<i>` inside `<but
@import "../../../node_modules/instructure-icons/fonts/Line/InstructureIcons-Line_icon-map.scss"; @import "../../../node_modules/instructure-icons/fonts/Line/InstructureIcons-Line_icon-map.scss";
@import "../../../node_modules/instructure-icons/fonts/Solid/InstructureIcons-Solid_icon-map.scss"; @import "../../../node_modules/instructure-icons/fonts/Solid/InstructureIcons-Solid_icon-map.scss";
$icon_default: "Solid"; $icon_default: "Line";
// this could be refactored if/when sass allows for variable interpolation // this could be refactored if/when sass allows for variable interpolation
$icon_index: ( $icon_index: (
@ -120,10 +120,8 @@ a[class^=icon-] {
&:before { &:before {
font-family: "InstructureIcons-#{$icon_default}"; font-family: "InstructureIcons-#{$icon_default}";
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: top;
line-height: 1; line-height: 1;
position: relative;
top: -1px;
text-rendering: optimizeLegibility; text-rendering: optimizeLegibility;
// the specific reason for this being in the :before and not part of the <i> was to get // the specific reason for this being in the :before and not part of the <i> was to get
@ -141,15 +139,11 @@ a[class^=icon-] {
i[class*=icon-], i[class^=icon-] { i[class*=icon-], i[class^=icon-] {
display: inline-block; display: inline-block;
font-style: normal !important; font-style: normal !important;
width: 1rem;
height: 1rem;
line-height: 1; line-height: 1;
// adjust icon sizes to look good with our large-size button class // adjust icon sizes to look good with our large-size button class
.btn-large &, .btn-large &,
.Button--large & { .Button--large & {
width: 1.125rem;
height: 1.125rem;
line-height: 1; line-height: 1;
&:before{ font-size: 1.125rem; } &:before{ font-size: 1.125rem; }
} }
@ -158,8 +152,6 @@ i[class*=icon-], i[class^=icon-] {
// this should only be used for things like: icon-settings and icon-mini-arrow-down // this should only be used for things like: icon-settings and icon-mini-arrow-down
.btn-mini &, .btn-mini &,
.Button--mini { .Button--mini {
width: 0.75rem;
height: 0.75rem;
line-height: 1; line-height: 1;
&:before{ font-size: 0.75rem; } &:before{ font-size: 0.75rem; }
} }
@ -169,7 +161,10 @@ i[class*=icon-], i[class^=icon-] {
// when an icon is applied directly to a link, add a little left margin to make // when an icon is applied directly to a link, add a little left margin to make
// things look nicer // things look nicer
a[class*=icon-], a[class^=icon-] { a[class*=icon-], a[class^=icon-] {
&:before { margin-right: 4px; } &:before {
margin-right: 4px;
vertical-align: text-bottom;
}
} }
.standalone-icon { .standalone-icon {

View File

@ -79,6 +79,8 @@ body {
margin: 0; margin: 0;
line-height: $ic-line-height; line-height: $ic-line-height;
color: $ic-font-color-dark; color: $ic-font-color-dark;
-webkit-font-smoothing: antialiased; // needed to help render the iconFont clearer
-moz-osx-font-smoothing: grayscale; // needed to help render the iconFont clearer
} }
p { p {
@ -140,15 +142,15 @@ h1, h2, h3, h4, h5, h6 {
} }
} }
h1 { font-size: $ic-font-size * 2.75; } // ~38px h1 { font-size: $ic-font-size * 2.375; } // ~38px
h2 { font-size: $ic-font-size * 2.25; } // ~32px h2 { font-size: $ic-font-size * 2.00; } // ~32px
h3 { font-size: $ic-font-size * 1.75; } // ~24px h3 { font-size: $ic-font-size * 1.50; } // ~24px
h4 { font-size: $ic-font-size * 1.25; } // ~18px h4 { font-size: $ic-font-size * 1.125; } // ~18px
h5 { font-size: $ic-font-size; } h5 { font-size: $ic-font-size; }
h6 { font-size: $ic-font-size * 0.85; } // ~12px h6 { font-size: $ic-font-size * 0.75; } // ~12px
h1 small { font-size: $ic-font-size * 1.75; } // ~24px h1 small { font-size: $ic-font-size * 1.50; } // ~24px
h2 small { font-size: $ic-font-size * 1.25; } // ~18px h2 small { font-size: $ic-font-size * 1.125; } // ~18px
h3 small { font-size: $ic-font-size; } h3 small { font-size: $ic-font-size; }
h4 small { font-size: $ic-font-size; } h4 small { font-size: $ic-font-size; }

View File

@ -274,7 +274,7 @@
min-width: 1px; // firefox flex breaks the parent container min-width: 1px; // firefox flex breaks the parent container
margin: 0 $ic-sp; margin: 0 $ic-sp;
@include breakpoint(desktop) { @include breakpoint(desktop) {
margin-left: $ic-sp*1.5; margin-left: $ic-sp;
margin-right: $ic-sp*2; margin-right: $ic-sp*2;
} }
} }
@ -350,23 +350,12 @@
.ig-type-icon { .ig-type-icon {
width: 1.875rem; width: 1.875rem;
height: 1.875rem; height: 1.875rem;
border-radius: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background-color: $ic-font-color--subdued;
color: $ic-color-light;
&::before {
font-size: 1rem;
}
.ig-published:not(.student-view) & { .ig-published:not(.student-view) & {
background-color: $ic-color-success; color: $ic-color-success;
}
& i[class*=icon-],
& i[class^=icon-], {
&::before {
top: 0;
}
} }
} }

View File

@ -70,11 +70,7 @@ The publish button has two states on click (publish and published) and a hover s
} }
i:before { i:before {
@include fontSize(18px); @include fontSize(18px);
} color: inherit;
}
.btn-publish {
i:before {
color: #bbb;
} }
} }

View File

@ -45,6 +45,8 @@
} }
.icon-folder:before, .icon-folder-locked:before { .icon-folder:before, .icon-folder-locked:before {
@include fontSize(11px); @include fontSize(11px);
padding-right: $ic-sp/2;
vertical-align: middle;
} }
i[class*=icon-], i[class^=icon-] { color: $ic-font-color-dark } i[class*=icon-], i[class^=icon-] { color: $ic-font-color-dark }

View File

@ -311,10 +311,12 @@
&nbsp; &nbsp; &nbsp; &nbsp;
<button id="collapseAll" class="btn disableWhileFiltering" title="<%= t('collapse_replies', 'Collapse replies') %>" aria-label="<%= t('collapse_replies', 'Collapse replies') %>"> <button id="collapseAll" class="btn disableWhileFiltering" title="<%= t('collapse_replies', 'Collapse replies') %>" aria-label="<%= t('collapse_replies', 'Collapse replies') %>">
<%= image_tag 'discussions/collapse_icon.png', :alt => t('collapse_replies', 'Collapse replies') %> <i class="icon-expand" aria-hidden="true"> </i>
<span class="screenreader-only">Collapse replies</span>
</button> </button>
<button id="expandAll" class="btn disableWhileFiltering" title="<%= t('expand_replies', 'Expand replies') %>" aria-label="<%= t('expand_replies', 'Expand replies') %>"> <button id="expandAll" class="btn disableWhileFiltering" title="<%= t('expand_replies', 'Expand replies') %>" aria-label="<%= t('expand_replies', 'Expand replies') %>">
<%= image_tag 'discussions/expand_icon.png', :alt => t('expand_replies', 'Expand replies') %> <i class="icon-collapse" aria-hidden="true"></i>
<span class="screenreader-only">Expand replies</span>
</button> </button>
</div> </div>

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" class="ic-icon-svg ic-icon-svg--accounts" x="0" y="0" viewBox="0 0 200 224" enable-background="new 0 0 200 224" xml:space="preserve"><path d="M100 224l-3.1-1.5C31.5 190.2 0 145.8 0 85.9V36.8c0-4.6 2.3-8.4 5.4-11.5C15.4 17.6 43.8 0 100 0c55.4 0 84.6 17.6 94.6 25.3 3.8 3.1 5.4 6.9 5.4 11.5v49.1c0 59.8-31.5 104.3-96.9 136.5L100 224zM15.4 37.6v48.3c0 52.2 27.7 92.1 84.6 121.2 56.9-29.2 84.6-68.3 84.6-121.2V37.6c-7.7-5.4-33.1-21.5-84.6-21.5S23.1 32.2 15.4 37.6zM100 131.2l-36.2 19.2 6.9-40.7L41.5 81.3l40-5.4L100 39.1l18.5 36.8 40 5.4 -29.2 28.4 6.9 40.7L100 131.2z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" class="ic-icon-svg ic-icon-svg--accounts" x="0" y="0" viewBox="0 0 200 224" enable-background="new 0 0 200 224" xml:space="preserve"><path d="M87,83.47a9.53,9.53,0,1,1-9.53-9.53A9.53,9.53,0,0,1,87,83.47m35.26,62.28h17.29V128.45l-40-40,.44-4.19c.11-13.94-10.3-24.37-23.1-24.37a23.22,23.22,0,0,0,0,46.44l5.31-.6,7.18,7.17h16.86V126h13.14V142.9Zm30,12.71H117l-10.3-10.29v-9.43H93.57V125.59H84.16L77.58,119h-.65a35.93,35.93,0,1,1,35.92-35.92c0,.22,0,.43,0,.64l39.44,39.45ZM99.72,220.06a6.46,6.46,0,0,1-3-.78l-3.93-2.13c-34.84-18.92-82.55-44.81-82.55-99.89V49.59a6.37,6.37,0,0,1,3.65-5.76L97,4.66a6.28,6.28,0,0,1,5.4,0L185.6,43.83a6.37,6.37,0,0,1,3.65,5.76v67.67c0,55.08-47.72,81-82.55,99.89l-3.93,2.13A6.47,6.47,0,0,1,99.72,220.06ZM22.91,53.62v63.64c0,47.52,42.09,70.37,75.9,88.73l.9.48.91-.48c33.81-18.36,75.9-41.21,75.9-88.73V53.62L99.72,17.43Z"/></svg>

Before

Width:  |  Height:  |  Size: 670 B

After

Width:  |  Height:  |  Size: 949 B

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg ic-icon-svg--calendar" version="1.1" x="0" y="0" viewBox="0 0 280 280" enable-background="new 0 0 280 280" xml:space="preserve"><path d="M268.3 280H11.7C5.2 280 0 274.8 0 268.3V35c0-6.4 5.2-11.7 11.7-11.7h35V11.7C46.7 5.2 51.9 0 58.3 0h35C99.8 0 105 5.2 105 11.7v11.7h70V11.7C175 5.2 180.2 0 186.7 0h35c6.4 0 11.7 5.2 11.7 11.7v11.7h35c6.4 0 11.7 5.2 11.7 11.7v233.3C280 274.8 274.8 280 268.3 280zM23.3 256.7h233.3v-210h-23.3v11.7c0 6.4-5.2 11.7-11.7 11.7h-35c-6.4 0-11.7-5.2-11.7-11.7V46.7h-70v11.7c0 6.4-5.2 11.7-11.7 11.7h-35c-6.4 0-11.7-5.2-11.7-11.7V46.7H23.3V256.7zM198.3 46.7H210V23.3h-11.7V46.7zM70 46.7h11.7V23.3H70V46.7zM198.3 245c-6.4 0-11.7-5.2-11.7-11.7v-11.7h-35v11.7c0 6.4-5.2 11.7-11.7 11.7 -6.4 0-11.7-5.2-11.7-11.7v-11.7h-35v11.7c0 6.4-5.2 11.7-11.7 11.7S70 239.8 70 233.3v-11.7H46.7c-6.4 0-11.7-5.2-11.7-11.7s5.2-11.7 11.7-11.7H70V175H46.7c-6.4 0-11.7-5.2-11.7-11.7 0-6.4 5.2-11.7 11.7-11.7H70v-23.3H46.7c-6.4 0-11.7-5.2-11.7-11.7S40.2 105 46.7 105H70V93.3c0-6.4 5.2-11.7 11.7-11.7s11.7 5.2 11.7 11.7V105h35V93.3c0-6.4 5.2-11.7 11.7-11.7 6.4 0 11.7 5.2 11.7 11.7V105h35V93.3c0-6.4 5.2-11.7 11.7-11.7 6.4 0 11.7 5.2 11.7 11.7V105h23.3c6.4 0 11.7 5.2 11.7 11.7s-5.2 11.7-11.7 11.7H210v23.3h23.3c6.4 0 11.7 5.2 11.7 11.7 0 6.4-5.2 11.7-11.7 11.7H210v23.3h23.3c6.4 0 11.7 5.2 11.7 11.7s-5.2 11.7-11.7 11.7H210v11.7C210 239.8 204.8 245 198.3 245zM151.7 198.3h35V175h-35V198.3zM93.3 198.3h35V175h-35V198.3zM151.7 151.7h35v-23.3h-35V151.7zM93.3 151.7h35v-23.3h-35V151.7z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg ic-icon-svg--calendar" version="1.1" x="0" y="0" viewBox="0 0 280 280" enable-background="new 0 0 280 280" xml:space="preserve"><path d="M197.07,213.38h16.31V197.07H197.07Zm-16.31,16.31V180.76h48.92v48.92Zm-48.92-16.31h16.31V197.07H131.85Zm-16.31,16.31V180.76h48.92v48.92ZM66.62,213.38H82.93V197.07H66.62ZM50.32,229.68V180.76H99.24v48.92Zm146.75-81.53h16.31V131.85H197.07Zm-16.31,16.31V115.54h48.92v48.92Zm-48.92-16.31h16.31V131.85H131.85Zm-16.31,16.31V115.54h48.92v48.92ZM66.62,148.15H82.93V131.85H66.62ZM50.32,164.46V115.54H99.24v48.92ZM34,262.29H246V82.93H34ZM246,66.62V42.16A8.17,8.17,0,0,0,237.84,34H213.38v8.15a8.15,8.15,0,1,1-16.31,0V34H82.93v8.15a8.15,8.15,0,0,1-16.31,0V34H42.16A8.17,8.17,0,0,0,34,42.16V66.62Zm-8.15-48.92a24.49,24.49,0,0,1,24.46,24.46V278.6H17.71V42.16A24.49,24.49,0,0,1,42.16,17.71H66.62V9.55a8.15,8.15,0,0,1,16.31,0v8.15H197.07V9.55a8.15,8.15,0,1,1,16.31,0v8.15Z"/></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 960 B

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg menu-item__icon svg-icon-cog" version="1.1" x="0" y="0" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve" fill="currentColor"><path d="M200 120V80h-22.6c-2.3-9-6.1-17.4-11.2-24.9l15.2-15.2 -21.2-21.2 -15.2 15.2C137.4 28.8 129 25 120 22.6V0H80v22.6c-9 2.3-17.4 6.1-24.9 11.2L39.9 18.7 18.7 39.9l15.2 15.2C28.8 62.6 25 71 22.6 80H0v40h22.6c2.3 9 6.1 17.4 11.2 24.9l-15.2 15.2 21.2 21.2 15.2-15.2c7.5 5.1 15.9 8.9 24.9 11.2V200h40v-22.6c9-2.3 17.4-6.1 24.9-11.2l15.2 15.2 21.2-21.2 -15.2-15.2c5.1-7.5 8.9-15.9 11.2-24.9H200zM100 160c-33.1 0-60-26.9-60-60 0-33.1 26.9-60 60-60s60 26.9 60 60C160 133.1 133.1 160 100 160z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg menu-item__icon svg-icon-cog" version="1.1" x="0" y="0" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve" fill="currentColor"><path d="M100,127.88A27.88,27.88,0,1,1,127.92,100,27.92,27.92,0,0,1,100,127.88M100,61a39,39,0,1,0,39,39,39.08,39.08,0,0,0-39-39m73.42,39a70.26,70.26,0,0,0-1.15-12.57l20.76-18-19.7-33.66-26.19,8.73a74.2,74.2,0,0,0-22.11-12.68L119.68,5.2H80.4L75,31.83A72.9,72.9,0,0,0,52.89,44.51L26.71,35.79,7,69.45l20.74,18a69.95,69.95,0,0,0,0,25.13L7,130.55l19.7,33.66,26.19-8.74A74.23,74.23,0,0,0,75,168.16l5.4,26.64h39.28l5.4-26.63a72.88,72.88,0,0,0,22.11-12.69l26.19,8.74,19.7-33.66-20.76-18A70.26,70.26,0,0,0,173.46,100Zm5.31,32.92-10.45,17.86-23.72-7.92-2.42,2.2a61.7,61.7,0,0,1-23.57,13.51l-3.17,1-4.88,24.1h-21l-4.88-24.11-3.17-1A61.7,61.7,0,0,1,57.91,145l-2.42-2.2-23.72,7.92L21.31,132.91l18.74-16.24-.74-3.26a59.25,59.25,0,0,1,0-26.83l.74-3.26L21.31,67.09,31.76,49.23l23.72,7.91,2.42-2.2A61.87,61.87,0,0,1,81.47,41.42l3.17-1,4.88-24.1h21l4.88,24.11,3.17,1A61.73,61.73,0,0,1,142.18,55l2.42,2.2,23.72-7.92,10.45,17.86L160,83.33l.74,3.26a59.25,59.25,0,0,1,0,26.83l-.74,3.26Z"/></svg>

Before

Width:  |  Height:  |  Size: 713 B

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg ic-icon-svg--courses" version="1.1" x="0" y="0" viewBox="0 0 280 259" enable-background="new 0 0 280 259" xml:space="preserve"><path d="M226.2 259H32.3c-5.9 0-10.8-4.8-10.8-10.8v-43.5H10.8C4.8 204.8 0 199.9 0 194c0-6 4.8-10.8 10.8-10.8h10.8v-21.6H10.8c-5.9 0-10.8-4.8-10.8-10.8s4.8-10.8 10.8-10.8h10.8v-21.6H10.8c-5.9 0-10.8-4.8-10.8-10.8 0-6 4.8-10.8 10.8-10.8h10.8V75.4H10.8C4.8 75.4 0 70.6 0 64.7s4.8-10.8 10.8-10.8h10.8V10.8c0-6 4.8-10.8 10.8-10.8h193.9c5.9 0 10.8 4.8 10.8 10.8v21.6h32.3c5.9 0 10.8 4.8 10.8 10.8v172.4c0 6-4.8 10.8-10.8 10.8H237v21.9C237 254.2 232.2 259 226.2 259zM43.1 237.4h172.4V21.6H43.1v32.3h10.7c5.9 0 10.8 4.8 10.8 10.8s-4.8 10.8-10.8 10.8H43.1V97h10.7c5.9 0 10.8 4.8 10.8 10.8 0 6-4.8 10.8-10.8 10.8H43.1v21.6h10.7c5.9 0 10.8 4.8 10.8 10.8s-4.8 10.8-10.8 10.8H43.1v21.6h10.7c5.9 0 10.8 4.8 10.8 10.8 0 6-4.8 10.8-10.8 10.8H43.1V237.4zM237 204.8h21.5v-21.6H237V204.8zM237 161.7h21.5v-21.6H237V161.7zM237 118.5h21.5V97H237V118.5zM237 75.4h21.5V53.9H237V75.4zM172.2 129.3H96.9c-5.9 0-10.8-4.8-10.8-10.8V64.7c0-6 4.8-10.8 10.8-10.8h75.3c5.9 0 10.8 4.8 10.8 10.8v53.9C183 124.5 178.2 129.3 172.2 129.3zM107.7 107.8h53.8V75.4h-53.8V107.8z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg ic-icon-svg--courses" version="1.1" x="0" y="0" viewBox="0 0 280 259" enable-background="new 0 0 280 259" xml:space="preserve"><path d="M73.31,198c-11.93,0-22.22,8-24,18.73a26.67,26.67,0,0,0-.3,3.63v.3a22,22,0,0,0,5.44,14.65,22.47,22.47,0,0,0,17.22,8H200V228.19h-134V213.08H200V198Zm21-105.74h90.64V62H94.3ZM79.19,107.34V46.92H200v60.42Zm7.55,30.21V122.45H192.49v15.11ZM71.65,16.71A22.72,22.72,0,0,0,49,39.36V190.88a41.12,41.12,0,0,1,24.32-8h157V16.71ZM33.88,39.36A37.78,37.78,0,0,1,71.65,1.6H245.36V198H215.15v45.32h22.66V258.4H71.65a37.85,37.85,0,0,1-37.76-37.76Z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 634 B

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg ic-icon-svg--dashboard" version="1.1" x="0" y="0" viewBox="0 0 280 200" enable-background="new 0 0 280 200" xml:space="preserve"><path d="M231.6 94.2c-2.5-4.9-8.5-6.9-13.4-4.5l-57.3 28.6c-5.4-5.2-12.7-8.4-20.8-8.4 -16.6 0-30 13.5-30 30 0 16.6 13.5 30 30 30 16.6 0 30-13.5 30-30 0-1.3-0.1-2.5-0.2-3.8l57.3-28.6C232 105.2 234 99.2 231.6 94.2zM140 150c-5.5 0-10-4.5-10-10s4.5-10 10-10c5.5 0 10 4.5 10 10S145.6 150 140 150zM70 150H50c-5.5 0-10-4.5-10-10s4.5-10 10-10h20c5.5 0 10 4.5 10 10S75.5 150 70 150zM140 80c-5.5 0-10-4.5-10-10V50c0-5.5 4.5-10 10-10 5.5 0 10 4.5 10 10v20C150 75.5 145.5 80 140 80zM105 89.6c-3.5 0-6.8-1.8-8.7-5l-10-17.3c-2.8-4.8-1.1-10.9 3.7-13.7 4.8-2.8 10.9-1.1 13.7 3.7l10 17.3c2.8 4.8 1.1 10.9-3.7 13.7C108.4 89.1 106.7 89.6 105 89.6zM79.4 115.4c-1.7 0-3.4-0.4-5-1.3l-17.3-10c-4.8-2.8-6.4-8.9-3.7-13.7 2.8-4.8 8.9-6.4 13.7-3.7l17.3 10c4.8 2.8 6.4 8.9 3.7 13.7C86.2 113.6 82.8 115.4 79.4 115.4zM173.6 89.6c-1.7 0-3.4-0.4-5-1.3 -4.8-2.8-6.4-8.9-3.7-13.7l10-17.3c2.8-4.8 8.9-6.4 13.7-3.7 4.8 2.8 6.4 8.9 3.7 13.7l-10 17.3C180.4 87.8 177.1 89.6 173.6 89.6zM140 0C62.8 0 0 63 0 140.5V190c0 5.5 4.5 10 10 10h260c5.5 0 10-4.5 10-10v-49.5C280 63 217.2 0 140 0zM260 180H20v-39.5C20 74.1 73.8 20 140 20c66.2 0 120 54.1 120 120.5V180zM230 150h-20c-5.5 0-10-4.5-10-10s4.5-10 10-10h20c5.5 0 10 4.5 10 10S235.5 150 230 150z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg ic-icon-svg--dashboard" version="1.1" x="0" y="0" viewBox="0 0 280 200" enable-background="new 0 0 280 200" xml:space="preserve"><path d="M273.09,180.75H197.47V164.47h62.62A122.16,122.16,0,1,0,17.85,142a124,124,0,0,0,2,22.51H90.18v16.29H6.89l-1.5-6.22A138.51,138.51,0,0,1,1.57,142C1.57,65.64,63.67,3.53,140,3.53S278.43,65.64,278.43,142a137.67,137.67,0,0,1-3.84,32.57ZM66.49,87.63,50.24,71.38,61.75,59.86,78,76.12Zm147,0L202,76.12l16.25-16.25,11.51,11.51ZM131.85,53.82v-23h16.29v23Zm15.63,142.3a31.71,31.71,0,0,1-28-16.81c-6.4-12.08-15.73-72.29-17.54-84.25a8.15,8.15,0,0,1,13.58-7.2c8.88,8.21,53.48,49.72,59.88,61.81a31.61,31.61,0,0,1-27.9,46.45ZM121.81,116.2c4.17,24.56,9.23,50.21,12,55.49A15.35,15.35,0,1,0,161,157.3C158.18,152,139.79,133.44,121.81,116.2Z" /></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 826 B

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg menu-item__icon svg-icon-folder" version="1.1" x="0" y="0" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve" fill="currentColor"><path d="M180 45H97.5L81 23c-3.8-5-9.7-8-16-8H20C9 15 0 24 0 35v130c0 11 9 20 20 20h160c11 0 20-9 20-20V65C200 54 191 45 180 45zM20 165V35h45l16.5 22c3.8 5 9.7 8 16 8H180l0 100H20z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg menu-item__icon svg-icon-folder" version="1.1" x="0" y="0" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve" fill="currentColor"><path d="M103,49.87,80.68,16.41H5.2V167a16.75,16.75,0,0,0,16.73,16.73H178.07A16.75,16.75,0,0,0,194.8,167V49.87ZM183.65,167a5.59,5.59,0,0,1-5.58,5.58H21.93A5.59,5.59,0,0,1,16.35,167V27.56H74.71L89.57,49.87H27.51V61H183.65Z"/></svg>

Before

Width:  |  Height:  |  Size: 407 B

After

Width:  |  Height:  |  Size: 448 B

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg menu-item__icon svg-icon-help" version="1.1" x="0" y="0" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve" fill="currentColor"><path d="M100 200C44.9 200 0 155.1 0 100 0 44.9 44.9 0 100 0s100 44.9 100 100C200 155.1 155.1 200 100 200zM100 20c-44.1 0-80 35.9-80 80s35.9 80 80 80 80-35.9 80-80S144.1 20 100 20z"/><path d="M110 130H90v-30h10c11 0 20-9 20-20 0-11-9-20-20-20s-20 9-20 20H60c0-22.1 17.9-40 40-40s40 17.9 40 40c0 18.6-12.8 34.3-30 38.7V130z"/><circle cx="100" cy="150" r="12.5"/></svg> <svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg menu-item__icon svg-icon-help" version="1.1" x="0" y="0" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve" fill="currentColor"><path d="M100,127.88A11.15,11.15,0,1,0,111.16,139,11.16,11.16,0,0,0,100,127.88Zm8.82-88.08a33.19,33.19,0,0,1,23.5,23.5,33.54,33.54,0,0,1-24,41.23,3.4,3.4,0,0,0-2.74,3.15v9.06H94.42v-9.06a14.57,14.57,0,0,1,11.13-14,22.43,22.43,0,0,0,13.66-10.27,22.73,22.73,0,0,0,2.31-17.37A21.92,21.92,0,0,0,106,50.59a22.67,22.67,0,0,0-19.68,3.88,22.18,22.18,0,0,0-8.65,17.64H66.54a33.25,33.25,0,0,1,13-26.47A33.72,33.72,0,0,1,108.82,39.8ZM100,5.2A94.8,94.8,0,1,0,194.8,100,94.91,94.91,0,0,0,100,5.2m0,178.45A83.65,83.65,0,1,1,183.65,100,83.73,83.73,0,0,1,100,183.65" transform="translate(-5.2 -5.2)"/></svg>

Before

Width:  |  Height:  |  Size: 583 B

After

Width:  |  Height:  |  Size: 807 B

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg ic-icon-svg--inbox" version="1.1" x="0" y="0" viewBox="0 0 280 280" enable-background="new 0 0 280 280" xml:space="preserve"><path d="M93.3 105c0-6.4 5.2-11.7 11.7-11.7h70c6.4 0 11.7 5.2 11.7 11.7s-5.2 11.7-11.7 11.7h-70C98.6 116.7 93.3 111.4 93.3 105zM105 70h23.3c6.4 0 11.7-5.2 11.7-11.7s-5.2-11.7-11.7-11.7H105c-6.4 0-11.7 5.2-11.7 11.7S98.6 70 105 70zM280 198.3v70c0 6.4-5.2 11.7-11.7 11.7H11.7C5.2 280 0 274.8 0 268.3v-69.8c0-1.1 0.1-2.2 0.4-3.3 0.3-1.1 0.8-2.1 1.3-3L36.7 134c2.1-3.5 5.9-5.7 10-5.7h11.7V11.7C58.3 5.2 63.6 0 70 0h140c6.4 0 11.7 5.2 11.7 11.7v116.7h11.7c4.1 0 7.9 2.1 10 5.7l35 58.3c0.1 0.2 0.1 0.5 0.3 0.7 0.4 0.7 0.6 1.4 0.8 2.2 0.2 0.8 0.4 1.5 0.5 2.3C279.9 197.8 280 198.1 280 198.3zM32.3 186.7h67.9c6.4 0 11.7 5.2 11.7 11.7V210c0 7.8 3.5 7.8 6 7.8h48.7c5.7 0 10.5-3.6 10.5-7.8v-11.7c0-6.4 5.2-11.7 11.7-11.7h59l-21-35h-5.1v11.7c0 6.4-5.2 11.7-11.7 11.7s-11.7-5.2-11.7-11.7v-140H81.7v140c0 6.4-5.2 11.7-11.7 11.7s-11.7-5.2-11.7-11.7v-11.7h-5.1L32.3 186.7zM256.7 210h-56.3c0 17.2-15.2 31.1-33.8 31.1h-48.7c-17.6 0-29.4-12.5-29.4-31.1H23.3v46.7h233.3V210zM175 163.3c6.4 0 11.7-5.2 11.7-11.7 0-6.4-5.2-11.7-11.7-11.7h-70c-6.4 0-11.7 5.2-11.7 11.7 0 6.4 5.2 11.7 11.7 11.7H175z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg ic-icon-svg--inbox" version="1.1" x="0" y="0" viewBox="0 0 280 280" enable-background="new 0 0 280 280" xml:space="preserve"><path d="M91.72,120.75h96.56V104.65H91.72Zm0,48.28h80.47V152.94H91.72Zm0-96.56h80.47V56.37H91.72Zm160.94,34.88H228.52V10.78h-177v96.56H27.34A24.17,24.17,0,0,0,3.2,131.48V244.14a24.17,24.17,0,0,0,24.14,24.14H252.66a24.17,24.17,0,0,0,24.14-24.14V131.48A24.17,24.17,0,0,0,252.66,107.34Zm0,16.09a8.06,8.06,0,0,1,8,8v51.77l-32.19,19.31V123.44ZM67.58,203.91v-177H212.42v177ZM27.34,123.44H51.48v79.13L19.29,183.26V131.48A8.06,8.06,0,0,1,27.34,123.44ZM252.66,252.19H27.34a8.06,8.06,0,0,1-8-8V202l30,18H230.75l30-18v42.12A8.06,8.06,0,0,1,252.66,252.19Z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 737 B

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="ic-icon-svg menu-item__icon svg-icon-information" x="0" y="0" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve" fill="currentColor"><path d="M100 200C44.9 200 0 155.1 0 100 0 44.9 44.9 0 100 0s100 44.9 100 100C200 155.1 155.1 200 100 200zM100 20c-44.1 0-80 35.9-80 80s35.9 80 80 80 80-35.9 80-80S144.1 20 100 20z"/><path d="M110 130V90c0-5.5-4.5-10-10-10H80v20h10v30H70v20h60v-20H110z"/><circle cx="100" cy="60" r="12.5"/></svg> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="ic-icon-svg menu-item__icon svg-icon-information" x="0" y="0" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve" fill="currentColor"><path d="M94.42,139h11.15V105.58H94.42ZM83.27,150.19V94.42h33.46v55.76ZM100,72.12A11.15,11.15,0,1,1,111.15,61,11.16,11.16,0,0,1,100,72.12Zm0-33.46A22.31,22.31,0,1,0,122.31,61,22.33,22.33,0,0,0,100,38.66M100,5.2A94.8,94.8,0,1,0,194.8,100,94.91,94.91,0,0,0,100,5.2m0,178.45A83.65,83.65,0,1,1,183.65,100,83.73,83.73,0,0,1,100,183.65"/></svg>

Before

Width:  |  Height:  |  Size: 519 B

After

Width:  |  Height:  |  Size: 561 B

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg menu-item__icon svg-icon-lifepreserver" version="1.1" x="0" y="0" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve" fill="currentColor"><path d="M190 80h-2.3C180 46.4 153.6 20 120 12.3V10c0-5.5-4.5-10-10-10H90c-5.5 0-10 4.5-10 10v2.3C46.4 20 20 46.4 12.3 80H10C4.5 80 0 84.5 0 90v20c0 5.5 4.5 10 10 10h2.3c7.7 33.6 34.1 60 67.7 67.7v2.3c0 5.5 4.5 10 10 10h20c5.5 0 10-4.5 10-10v-2.3c33.6-7.7 60-34.1 67.7-67.7h2.3c5.5 0 10-4.5 10-10V90C200 84.5 195.5 80 190 80zM167.1 80h-32.6c-3.5-6-8.4-10.9-14.4-14.4V32.9C142.5 39.7 160.3 57.5 167.1 80zM100 120c-11 0-20-9-20-20s9-20 20-20c11 0 20 9 20 20S111 120 100 120zM80 32.9v32.6C74 69.1 69.1 74 65.6 80H32.9C39.7 57.5 57.5 39.7 80 32.9zM32.9 120h32.6c3.5 6 8.4 10.9 14.4 14.4v32.6C57.5 160.3 39.7 142.5 32.9 120zM120 167.1v-32.6c6-3.5 10.9-8.4 14.4-14.4h32.6C160.3 142.5 142.5 160.3 120 167.1z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg menu-item__icon svg-icon-lifepreserver" version="1.1" x="0" y="0" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve" fill="currentColor"><path d="M189.95,70.33a11.82,11.82,0,0,0-6.24-7,10.92,10.92,0,0,0-2.32-.52,89,89,0,0,0-44-44.07,10.82,10.82,0,0,0-.56-2.43,11.77,11.77,0,0,0-7-6.29,93.75,93.75,0,0,0-59.5,0,11.71,11.71,0,0,0-7,6.23,10,10,0,0,0-.54,2.32,88.78,88.78,0,0,0-44.06,44,11.62,11.62,0,0,0-2.46.57,11.8,11.8,0,0,0-6.28,7,93.72,93.72,0,0,0,0,59.49,11.74,11.74,0,0,0,6.22,7,11.74,11.74,0,0,0,2.33.51,88.93,88.93,0,0,0,44,44.09,11.59,11.59,0,0,0,.57,2.44,11.8,11.8,0,0,0,7,6.28,93.75,93.75,0,0,0,59.49,0,9.84,9.84,0,0,0,7.51-8.55,88.88,88.88,0,0,0,44.08-44,11.62,11.62,0,0,0,2.45-.54,11.81,11.81,0,0,0,6.27-7A93.79,93.79,0,0,0,189.95,70.33ZM135.12,30a78,78,0,0,1,35,35l-24,9.89a51.74,51.74,0,0,0-20.94-21ZM119,136.8a11.28,11.28,0,0,0-9.37-1.75,36.37,36.37,0,0,1-19.49,0,11.11,11.11,0,0,0-9.31,1.72,40.94,40.94,0,0,1-17.66-17.72,11.22,11.22,0,0,0,1.74-9.39,36.34,36.34,0,0,1,0-19.51,11.13,11.13,0,0,0-1.72-9.3A40.94,40.94,0,0,1,80.81,63.28,11.2,11.2,0,0,0,90.33,65a36.37,36.37,0,0,1,19.49,0,11.15,11.15,0,0,0,9.31-1.72A41,41,0,0,1,136.79,81a11.12,11.12,0,0,0-1.74,9.37,36.37,36.37,0,0,1,0,19.49,11.07,11.07,0,0,0,1.73,9.32A41,41,0,0,1,119,136.8Zm7.3-116.17.38.56-13.88,33a48.8,48.8,0,0,0-13.08-1.76A53.23,53.23,0,0,0,87,54L73.84,20.64A82.58,82.58,0,0,1,126.33,20.63ZM65,29.88l9.9,24a51.93,51.93,0,0,0-21,20.95L30,64.88A77.94,77.94,0,0,1,65,29.88ZM21.18,73.28l33,13.88A50.72,50.72,0,0,0,54,113L20.64,126.15a82.66,82.66,0,0,1,0-52.49ZM64.87,170a77.79,77.79,0,0,1-35-35l24-9.88a52,52,0,0,0,20.94,21Zm8.8,9.39-.39-.56,13.89-33a50.56,50.56,0,0,0,25.8.2l13.18,33.37A82.55,82.55,0,0,1,73.67,179.37Zm61.3-9.26-9.88-24a51.94,51.94,0,0,0,21-20.94L170,135.13A77.78,77.78,0,0,1,135,170.11Zm43.86-43.39-33-13.88A50.83,50.83,0,0,0,146,87l33.37-13.18a82.66,82.66,0,0,1,0,52.49Z" /></svg>

Before

Width:  |  Height:  |  Size: 934 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg ic-icon-svg--navtoggle" version="1.1" x="0" y="0" width="40" height="32" viewBox="0 0 40 32" xml:space="preserve"> <svg xmlns="http://www.w3.org/2000/svg" class="ic-icon-svg ic-icon-svg--navtoggle" version="1.1" x="0" y="0" width="40" height="32" viewBox="0 0 40 32" xml:space="preserve">
<polygon points="20.6 9.4 23.4 6.6 32.8 16 23.4 25.4 20.6 22.6 25.2 18 0 18 0 14 25.2 14 "/><rect x="36" width="4" height="32"/> <path d="M39.5,30.28V2.48H37.18v27.8Zm-4.93-13.9L22.17,4,20.53,5.61l9.61,9.61H.5v2.31H30.14l-9.61,9.61,1.64,1.64Z"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 312 B

After

Width:  |  Height:  |  Size: 300 B

View File

@ -30,7 +30,7 @@
<div class="rs-margin-bottom"> <div class="rs-margin-bottom">
<a href="<%= context_url(@context, :context_groups_url) %>" class="btn button-sidebar-wide user_groups"><i class="icon-group"></i> <%= t('buttons.user_groups', 'View User Groups') %></a> <a href="<%= context_url(@context, :context_groups_url) %>" class="btn button-sidebar-wide user_groups"><i class="icon-group"></i> <%= t('buttons.user_groups', 'View User Groups') %></a>
<% if service_enabled?(:avatars) %> <% if service_enabled?(:avatars) %>
<a href="<%= context_url(@context, :context_avatars_url) %>" class="btn button-sidebar-wide manage_profile_pictures"><i class="icon-student-view"></i> <%= t('buttons.manage_profile_pictures', 'Manage Profile Pictures') %></a> <a href="<%= context_url(@context, :context_avatars_url) %>" class="btn button-sidebar-wide manage_profile_pictures"><i class="icon-user"></i> <%= t('buttons.manage_profile_pictures', 'Manage Profile Pictures') %></a>
<% end %> <% end %>
</div> </div>

View File

@ -9,7 +9,7 @@
"brandable_css": "0.0.71", "brandable_css": "0.0.71",
"canvas_offline_course_viewer": "https://github.com/instructure/canvas_offline_course_viewer.git#1.1.0", "canvas_offline_course_viewer": "https://github.com/instructure/canvas_offline_course_viewer.git#1.1.0",
"fullcalendar": "https://github.com/ryankshaw/fullcalendar.git#aa686b36d10cee1e1e3ec7c7784145e46667d47d", "fullcalendar": "https://github.com/ryankshaw/fullcalendar.git#aa686b36d10cee1e1e3ec7c7784145e46667d47d",
"instructure-icons": "3.0.1", "instructure-icons": "4.0.1",
"tinymce": "4.5.7" "tinymce": "4.5.7"
}, },
"devDependencies": { "devDependencies": {

View File

@ -1,15 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="28" height="28" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><title>icon-folder-locked</title><g fill="#384A58" fill-rule="evenodd"><path d="M26.11,17.23a3.23,3.23,0,0,0-6.46,0v1.62H18V24.5a2.43,2.43,0,0,0,2.42,2.42h4.85a2.43,2.43,0,0,0,2.42-2.42V18.85H26.11Zm-4.85,0a1.62,1.62,0,0,1,3.23,0v1.62H21.27Zm4.85,7.27a.81.81,0,0,1-.81.81H20.46a.81.81,0,0,1-.81-.81v-4h6.46ZM14.43,5.92h13.3V14H26.11V7.54H3.5V5.92h9L10.34,2.69H1.89V22.88a.81.81,0,0,0,.81.81h13.7v1.62H2.69A2.43,2.43,0,0,1,.27,22.88V1.08H11.2Z" /></g></svg>
<svg width="28px" height="28px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 3.7.2 (28276) - http://www.bohemiancoding.com/sketch -->
<title>icon-folder-locked</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="icon-folder-locked">
<g id="icon-folder-locked-copy" transform="translate(0.000000, 38.000000)">
<path d="M256,188.472783 C241.938343,188.472783 230.479751,199.931374 230.479751,213.993032 L230.479751,255.591038 L281.520249,255.591038 L281.520249,213.993032 C281.520249,199.931374 270.061657,188.472783 256,188.472783" id="Fill-173" fill="#384A58"></path>
<path d="M358.080997,383.202492 L153.919003,383.202492 L153.919003,255.601246 L179.439252,255.601246 L179.439252,214.00324 C179.439252,171.767227 213.789508,137.442492 256,137.442492 C298.210492,137.442492 332.560748,171.767227 332.560748,214.00324 L332.560748,255.601246 L358.080997,255.601246 L358.080997,383.202492 Z M460.161994,76.9595016 L256,76.9595016 L219.072199,28.5986293 C210.420835,11.3214206 192.735302,0.398753894 173.416474,0.398753894 L26.317757,0.398753894 C12.2050592,0.398753894 0.797507788,11.8063053 0.797507788,25.9190031 L0.797507788,383.202492 C0.797507788,411.376847 23.6636511,434.242991 51.8380062,434.242991 L460.161994,434.242991 C488.336349,434.242991 511.202492,411.376847 511.202492,383.202492 L511.202492,128 C511.202492,99.8256449 488.336349,76.9595016 460.161994,76.9595016 L460.161994,76.9595016 Z" id="Fill-174" fill="#384A58"></path>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 542 B

View File

@ -1,13 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="28" height="36" viewBox="0 0 28 36" xmlns="http://www.w3.org/2000/svg"><title>folder</title><g fill="none" fill-rule="evenodd"><path d="M14.43,10.81,11.23,6H.43V27.58A2.4,2.4,0,0,0,2.82,30H25.18a2.4,2.4,0,0,0,2.4-2.4V10.81ZM26,27.58a.8.8,0,0,1-.8.8H2.82a.8.8,0,0,1-.8-.8v-20h8.35l2.13,3.19H3.62v1.6H26Z" fill="#384A58"/></g></svg>
<svg width="28px" height="36px" viewBox="0 0 28 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<!-- Generator: Sketch 3.1 (8751) - http://www.bohemiancoding.com/sketch -->
<title>folder</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="folder" sketch:type="MSArtboardGroup">
<path d="M2,13 L2,31 L5,31 L5,14 L27,14 L27,12 L2,12 L2,13 L2,13 Z" id="Rectangle-70" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>
<path d="M27,12 L27,10.5 C27,9.67157288 26.3325806,9 25.5099035,9 L10.9938083,9 C10.4474545,9 10,8.55181759 10,7.99895656 L10,6.99791312 C10,5.89449617 9.11256671,5 8.00038502,5 L1.99961498,5 C0.895258123,5 0,5.89826062 0,6.99791312 L0,9.00104344 L0,11 L0,29 L2,31 L2,13.9974219 C2,12.8942762 2.88976324,12 4.00359486,12 L27,12 L27,12 Z M5.00359486,13 C3.89703997,13 3,13.8926228 3,14.9950893 L3,31 L28,31 L28,14.9950893 C28,13.8932319 27.1102368,13 25.9964051,13 L5.00359486,13 L5.00359486,13 Z" id="Rectangle-67" fill="#384A58" sketch:type="MSShapeGroup"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 343 B

View File

@ -86,6 +86,7 @@ describe 'quizzes question creation' do
wait_for_ajax_requests wait_for_ajax_requests
# check to see if the questions displays correctly # check to see if the questions displays correctly
dismiss_flash_messages
move_to_click('label[for=show_question_details]') move_to_click('label[for=show_question_details]')
quiz.reload quiz.reload
finished_question = f("#question_#{quiz.quiz_questions[0].id}") finished_question = f("#question_#{quiz.quiz_questions[0].id}")
@ -161,6 +162,7 @@ describe 'quizzes question creation' do
it 'should show errors for graded quizzes', priority: "1", test_id: 197491 do it 'should show errors for graded quizzes', priority: "1", test_id: 197491 do
open_quiz_edit_form open_quiz_edit_form
dismiss_flash_messages
click_questions_tab click_questions_tab
edit_first_question edit_first_question
delete_first_multiple_choice_answer delete_first_multiple_choice_answer
@ -171,6 +173,7 @@ describe 'quizzes question creation' do
it 'should not show errors for surveys', priority: "1", test_id: 197491 do it 'should not show errors for surveys', priority: "1", test_id: 197491 do
@quiz.update_attribute :quiz_type, "graded_survey" @quiz.update_attribute :quiz_type, "graded_survey"
open_quiz_edit_form open_quiz_edit_form
dismiss_flash_messages
click_questions_tab click_questions_tab
edit_and_save_first_multiple_choice_answer 'instructure!' edit_and_save_first_multiple_choice_answer 'instructure!'
expect(error_displayed?).to be_falsey expect(error_displayed?).to be_falsey

View File

@ -92,6 +92,7 @@ describe 'quizzes question creation' do
wait_for_ajax_requests wait_for_ajax_requests
# check to see if the questions displays correctly # check to see if the questions displays correctly
dismiss_flash_messages
move_to_click('label[for=show_question_details]') move_to_click('label[for=show_question_details]')
quiz.reload quiz.reload
finished_question = f("#question_#{quiz.quiz_questions[0].id}") finished_question = f("#question_#{quiz.quiz_questions[0].id}")

View File

@ -165,14 +165,14 @@ describe "Wiki pages and Tiny WYSIWYG editor features" do
wysiwyg_state_setup wysiwyg_state_setup
# I'm so, so sorry... # I'm so, so sorry...
driver.find_element(:xpath, "//button/span[text()[contains(.,'11pt')]]").click driver.find_element(:xpath, "//button/span[text()[contains(.,'12pt')]]").click
driver.find_element(:xpath, "//span[text()[contains(.,'36pt')]]").click driver.find_element(:xpath, "//span[text()[contains(.,'36pt')]]").click
validate_wiki_style_attrib("font-size", "36pt", "p span") validate_wiki_style_attrib("font-size", "36pt", "p span")
end end
it "should change and remove all custom formatting on selected text", priority: "1", test_id: 298748 do it "should change and remove all custom formatting on selected text", priority: "1", test_id: 298748 do
wysiwyg_state_setup wysiwyg_state_setup
driver.find_element(:xpath, "//button/span[text()[contains(.,'11pt')]]").click driver.find_element(:xpath, "//button/span[text()[contains(.,'12pt')]]").click
driver.find_element(:xpath, "//span[text()[contains(.,'36pt')]]").click driver.find_element(:xpath, "//span[text()[contains(.,'36pt')]]").click
validate_wiki_style_attrib("font-size", "36pt", "p span") validate_wiki_style_attrib("font-size", "36pt", "p span")
f(".mce-i-removeformat").click f(".mce-i-removeformat").click

View File

@ -4105,7 +4105,14 @@ install@~0.1.7:
version "0.1.8" version "0.1.8"
resolved "https://registry.yarnpkg.com/install/-/install-0.1.8.tgz#9980ef93e30dfb534778d163bc86ddd472ad5fe8" resolved "https://registry.yarnpkg.com/install/-/install-0.1.8.tgz#9980ef93e30dfb534778d163bc86ddd472ad5fe8"
instructure-icons@3.0.1, instructure-icons@^3.0.1: instructure-icons@4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/instructure-icons/-/instructure-icons-4.0.1.tgz#168fe09d19ac07cad66ac6e42e1be99f64ab1622"
dependencies:
prop-types "15.5.8"
shortid "2.2.8"
instructure-icons@^3.0.1:
version "3.0.1" version "3.0.1"
resolved "https://registry.yarnpkg.com/instructure-icons/-/instructure-icons-3.0.1.tgz#1a8eb651ca4af619846a5c8d5f23e70cbba9badf" resolved "https://registry.yarnpkg.com/instructure-icons/-/instructure-icons-3.0.1.tgz#1a8eb651ca4af619846a5c8d5f23e70cbba9badf"
dependencies: dependencies:
@ -6423,14 +6430,14 @@ prop-types@15.5.8:
dependencies: dependencies:
fbjs "^0.8.9" fbjs "^0.8.9"
prop-types@15.5.9, prop-types@^15.0.0, prop-types@^15.5.8: prop-types@15.5.9, prop-types@^15.5.8:
version "15.5.9" version "15.5.9"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.9.tgz#d478eef0e761396942f70c78e772f76e8be747c9" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.9.tgz#d478eef0e761396942f70c78e772f76e8be747c9"
dependencies: dependencies:
fbjs "^0.8.9" fbjs "^0.8.9"
loose-envify "^1.3.1" loose-envify "^1.3.1"
prop-types@^15.5.10, prop-types@^15.5.6: prop-types@^15.0.0, prop-types@^15.5.10, prop-types@^15.5.6:
version "15.5.10" version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
dependencies: dependencies: