reustyle 2.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.drone.yml +17 -0
- data/.gitignore +25 -0
- data/.nvmrc +1 -0
- data/.rbenv-gemsets +1 -0
- data/.ruby-version +1 -0
- data/CONTRIBUTING.md +68 -0
- data/Gemfile +4 -0
- data/Gruntfile.js +234 -0
- data/LICENSE.txt +13 -0
- data/README.md +196 -0
- data/Rakefile +6 -0
- data/bower.json +54 -0
- data/config/autoprefixer.yml +6 -0
- data/config/scss-lint.yml +55 -0
- data/dist/icons.svg +1 -0
- data/dist/ustyle-content.css +1 -0
- data/dist/ustyle-latest.css +1 -0
- data/dist/ustyle.js +567 -0
- data/dist/ustyle.json +1 -0
- data/dist/ustyle.min.js +1 -0
- data/grunt/modules/dss-helper.js +115 -0
- data/grunt/modules/file.js +24 -0
- data/grunt/modules/html-parser.js +22 -0
- data/grunt/modules/templates.js +57 -0
- data/grunt/tasks/browser-sync.js +23 -0
- data/grunt/tasks/builder.js +67 -0
- data/grunt/tasks/styleguide.js +299 -0
- data/index.js +37 -0
- data/lib/ustyle/deploy.rb +41 -0
- data/lib/ustyle/engine.rb +32 -0
- data/lib/ustyle/hash.rb +44 -0
- data/lib/ustyle/helpers/icon_helper.rb +15 -0
- data/lib/ustyle/icons.rb +13 -0
- data/lib/ustyle/middleware/icon_middleware.rb +27 -0
- data/lib/ustyle/sass_functions.rb +65 -0
- data/lib/ustyle/sinatra.rb +34 -0
- data/lib/ustyle/sprockets.rb +6 -0
- data/lib/ustyle/utils.rb +42 -0
- data/lib/ustyle/version.rb +4 -0
- data/lib/ustyle.rb +58 -0
- data/package-lock.json +9303 -0
- data/package.json +89 -0
- data/styleguide/CNAME +1 -0
- data/styleguide/assets/images/CTAs.png +0 -0
- data/styleguide/assets/images/badge-label-usp.png +0 -0
- data/styleguide/assets/images/bower-logo.png +0 -0
- data/styleguide/assets/images/caveat.png +0 -0
- data/styleguide/assets/images/cloudfront-logo.png +0 -0
- data/styleguide/assets/images/design-conventions.png +0 -0
- data/styleguide/assets/images/error-texts.png +0 -0
- data/styleguide/assets/images/external-requirements.png +0 -0
- data/styleguide/assets/images/favicon/android-chrome-192x192.png +0 -0
- data/styleguide/assets/images/favicon/android-chrome-512x512.png +0 -0
- data/styleguide/assets/images/favicon/apple-touch-icon-114x114.png +0 -0
- data/styleguide/assets/images/favicon/apple-touch-icon-120x120.png +0 -0
- data/styleguide/assets/images/favicon/apple-touch-icon-144x144.png +0 -0
- data/styleguide/assets/images/favicon/apple-touch-icon-152x152.png +0 -0
- data/styleguide/assets/images/favicon/apple-touch-icon-180x180.png +0 -0
- data/styleguide/assets/images/favicon/apple-touch-icon-57x57.png +0 -0
- data/styleguide/assets/images/favicon/apple-touch-icon-60x60.png +0 -0
- data/styleguide/assets/images/favicon/apple-touch-icon-72x72.png +0 -0
- data/styleguide/assets/images/favicon/apple-touch-icon-76x76.png +0 -0
- data/styleguide/assets/images/favicon/apple-touch-icon.png +0 -0
- data/styleguide/assets/images/favicon/browserconfig.xml +9 -0
- data/styleguide/assets/images/favicon/favicon-16x16.png +0 -0
- data/styleguide/assets/images/favicon/favicon-32x32.png +0 -0
- data/styleguide/assets/images/favicon/favicon.ico +0 -0
- data/styleguide/assets/images/favicon/manifest.json +18 -0
- data/styleguide/assets/images/favicon/mstile-144x144.png +0 -0
- data/styleguide/assets/images/favicon/mstile-150x150.png +0 -0
- data/styleguide/assets/images/favicon/mstile-310x150.png +0 -0
- data/styleguide/assets/images/favicon/mstile-310x310.png +0 -0
- data/styleguide/assets/images/favicon/mstile-70x70.png +0 -0
- data/styleguide/assets/images/favicon/safari-pinned-tab.svg +46 -0
- data/styleguide/assets/images/icons.svg +1 -0
- data/styleguide/assets/images/infographic-01.png +0 -0
- data/styleguide/assets/images/infographic-02.png +0 -0
- data/styleguide/assets/images/npm-logo.png +0 -0
- data/styleguide/assets/images/placeholder-text.png +0 -0
- data/styleguide/assets/images/ruby-logo.png +0 -0
- data/styleguide/assets/images/site-consistency01.png +0 -0
- data/styleguide/assets/images/site-consistency02.png +0 -0
- data/styleguide/assets/images/site-consistency03.png +0 -0
- data/styleguide/assets/images/styleguide-examples/accurate-housing.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/altered.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/bad-subject.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/centered.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/cliche.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/cold.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/good-subject.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/illustrations_1.png +0 -0
- data/styleguide/assets/images/styleguide-examples/illustrations_2.png +0 -0
- data/styleguide/assets/images/styleguide-examples/illustrations_3.png +0 -0
- data/styleguide/assets/images/styleguide-examples/illustrations_4.png +0 -0
- data/styleguide/assets/images/styleguide-examples/illustrations_5.png +0 -0
- data/styleguide/assets/images/styleguide-examples/illustrations_6.png +0 -0
- data/styleguide/assets/images/styleguide-examples/innaccurate-housing.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/natural-1.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/natural-2.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/natural-3.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/not-centered.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/realistic.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/unaltered.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/unnatural-1.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/unnatural-2.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/unnatural-3.jpg +0 -0
- data/styleguide/assets/images/styleguide-examples/warm.jpg +0 -0
- data/styleguide/assets/images/tone-framework.png +0 -0
- data/styleguide/assets/images/tone.png +0 -0
- data/styleguide/assets/images/tooltip.png +0 -0
- data/styleguide/assets/images/tsandcs.png +0 -0
- data/styleguide/assets/images/ustyle.svg +73 -0
- data/styleguide/assets/images/ux-conventions-consistency.png +0 -0
- data/styleguide/assets/images/ux-conventions-error.png +0 -0
- data/styleguide/assets/images/ux-conventions-errors.png +0 -0
- data/styleguide/assets/images/ux-conventions-flexibility.png +0 -0
- data/styleguide/assets/images/ux-conventions-freedom.png +0 -0
- data/styleguide/assets/images/ux-conventions-minimalist.png +0 -0
- data/styleguide/assets/images/ux-conventions-real-world.png +0 -0
- data/styleguide/assets/images/ux-conventions-recognition.png +0 -0
- data/styleguide/assets/images/ux-conventions-visibility.png +0 -0
- data/styleguide/assets/javascripts/app.js +115 -0
- data/styleguide/assets/javascripts/modules/stats.js +50 -0
- data/styleguide/assets/javascripts/vendor/highlight.js +1 -0
- data/styleguide/assets/javascripts/vendor/svg4everybody.js +1 -0
- data/styleguide/assets/sass/main.scss +42 -0
- data/styleguide/assets/sass/modules/_code.scss +8 -0
- data/styleguide/assets/sass/modules/_colours.scss +26 -0
- data/styleguide/assets/sass/modules/_copyright.scss +4 -0
- data/styleguide/assets/sass/modules/_grid.scss +12 -0
- data/styleguide/assets/sass/modules/_home.scss +5 -0
- data/styleguide/assets/sass/modules/_images.scss +24 -0
- data/styleguide/assets/sass/modules/_links.scss +3 -0
- data/styleguide/assets/sass/modules/_logo.scss +182 -0
- data/styleguide/assets/sass/modules/_made-at.scss +6 -0
- data/styleguide/assets/sass/modules/_markdown.scss +7 -0
- data/styleguide/assets/sass/modules/_nav-mobile.scss +72 -0
- data/styleguide/assets/sass/modules/_nav.scss +32 -0
- data/styleguide/assets/sass/modules/_sidebar.scss +94 -0
- data/styleguide/assets/sass/modules/_states.scss +4 -0
- data/styleguide/assets/sass/modules/_styleguide.scss +138 -0
- data/styleguide/assets/sass/modules/_table.scss +3 -0
- data/styleguide/assets/sass/modules/_tooltip.scss +9 -0
- data/styleguide/assets/sass/modules/_typography.scss +14 -0
- data/styleguide/assets/sass/modules/_version.scss +11 -0
- data/styleguide/assets/sass/structure/_base.scss +18 -0
- data/styleguide/assets/sass/structure/_header.scss +12 -0
- data/styleguide/assets/sass/vendor/_highlight.scss +139 -0
- data/styleguide/assets/sass/vendor/_pure-table.scss +75 -0
- data/styleguide/content/brand/index.md +47 -0
- data/styleguide/content/brand/logo.tpl +279 -0
- data/styleguide/content/design/accessibility-testing.md +82 -0
- data/styleguide/content/design/index.tpl +367 -0
- data/styleguide/content/design/typography.md +68 -0
- data/styleguide/content/design/validating-designs.tpl +304 -0
- data/styleguide/content/index.tpl +51 -0
- data/styleguide/content/language/grammar.md +220 -0
- data/styleguide/content/language/microcopy.md +170 -0
- data/styleguide/content/language/tone.md +135 -0
- data/styleguide/content/pattern-library/grid.tpl +64 -0
- data/styleguide/content/pattern-library/index.tpl +88 -0
- data/styleguide/partials/_footer.tpl +8 -0
- data/styleguide/partials/_head.tpl +26 -0
- data/styleguide/partials/_header.tpl +37 -0
- data/styleguide/partials/_sidebar.tpl +27 -0
- data/styleguide/partials/colour.tpl +24 -0
- data/styleguide/partials/icons.tpl +28 -0
- data/styleguide/partials/style_block.tpl +44 -0
- data/styleguide/templates/simple.tpl +25 -0
- data/styleguide/templates/stats.tpl +50 -0
- data/styleguide/templates/styleguide.tpl +36 -0
- data/tasks/publish.rake +67 -0
- data/ustyle.gemspec +32 -0
- data/vendor/assets/images/forms/checkbox-rebrand.svg +1 -0
- data/vendor/assets/images/forms/checkbox.svg +1 -0
- data/vendor/assets/images/icons/alarm.svg +1 -0
- data/vendor/assets/images/icons/android.svg +1 -0
- data/vendor/assets/images/icons/arrow-circle.svg +1 -0
- data/vendor/assets/images/icons/arrow-down.svg +1 -0
- data/vendor/assets/images/icons/arrow-up.svg +1 -0
- data/vendor/assets/images/icons/book.svg +1 -0
- data/vendor/assets/images/icons/bookmark.svg +1 -0
- data/vendor/assets/images/icons/breadcrumb.svg +1 -0
- data/vendor/assets/images/icons/calculator.svg +1 -0
- data/vendor/assets/images/icons/calendar.svg +1 -0
- data/vendor/assets/images/icons/car.svg +1 -0
- data/vendor/assets/images/icons/checkbox-tick.svg +1 -0
- data/vendor/assets/images/icons/chevron-left.svg +1 -0
- data/vendor/assets/images/icons/chevron-right.svg +1 -0
- data/vendor/assets/images/icons/clock.svg +1 -0
- data/vendor/assets/images/icons/close.svg +1 -0
- data/vendor/assets/images/icons/cog.svg +1 -0
- data/vendor/assets/images/icons/controller.svg +1 -0
- data/vendor/assets/images/icons/credit-card.svg +1 -0
- data/vendor/assets/images/icons/cross.svg +1 -0
- data/vendor/assets/images/icons/dashcam.svg +1 -0
- data/vendor/assets/images/icons/dual-fuel.svg +1 -0
- data/vendor/assets/images/icons/electric-light.svg +1 -0
- data/vendor/assets/images/icons/envelope.svg +1 -0
- data/vendor/assets/images/icons/exit-noexit.svg +1 -0
- data/vendor/assets/images/icons/facebook-brand.svg +1 -0
- data/vendor/assets/images/icons/facebook.svg +1 -0
- data/vendor/assets/images/icons/filter.svg +1 -0
- data/vendor/assets/images/icons/fixed-variable.svg +1 -0
- data/vendor/assets/images/icons/gas.svg +1 -0
- data/vendor/assets/images/icons/gauge.svg +1 -0
- data/vendor/assets/images/icons/github.svg +1 -0
- data/vendor/assets/images/icons/google-brand.svg +1 -0
- data/vendor/assets/images/icons/google.svg +1 -0
- data/vendor/assets/images/icons/graph-up.svg +1 -0
- data/vendor/assets/images/icons/home.svg +1 -0
- data/vendor/assets/images/icons/hot.svg +1 -0
- data/vendor/assets/images/icons/info.svg +1 -0
- data/vendor/assets/images/icons/kettle.svg +1 -0
- data/vendor/assets/images/icons/key.svg +1 -0
- data/vendor/assets/images/icons/lock.svg +1 -0
- data/vendor/assets/images/icons/magnify-in.svg +1 -0
- data/vendor/assets/images/icons/magnify.svg +1 -0
- data/vendor/assets/images/icons/menu.svg +1 -0
- data/vendor/assets/images/icons/message.svg +1 -0
- data/vendor/assets/images/icons/mobile.svg +1 -0
- data/vendor/assets/images/icons/monthly-dd.svg +1 -0
- data/vendor/assets/images/icons/network.svg +1 -0
- data/vendor/assets/images/icons/no-exit.svg +1 -0
- data/vendor/assets/images/icons/pdf.svg +1 -0
- data/vendor/assets/images/icons/pencil.svg +1 -0
- data/vendor/assets/images/icons/person-add.svg +1 -0
- data/vendor/assets/images/icons/person.svg +1 -0
- data/vendor/assets/images/icons/phone.svg +1 -0
- data/vendor/assets/images/icons/piggy-bank.svg +1 -0
- data/vendor/assets/images/icons/pin.svg +1 -0
- data/vendor/assets/images/icons/play.svg +1 -0
- data/vendor/assets/images/icons/pound-circle.svg +1 -0
- data/vendor/assets/images/icons/pound-note.svg +1 -0
- data/vendor/assets/images/icons/present.svg +1 -0
- data/vendor/assets/images/icons/print.svg +1 -0
- data/vendor/assets/images/icons/quarterly-dd.svg +1 -0
- data/vendor/assets/images/icons/question-circle.svg +1 -0
- data/vendor/assets/images/icons/quote.svg +1 -0
- data/vendor/assets/images/icons/recycle.svg +1 -0
- data/vendor/assets/images/icons/remove.svg +1 -0
- data/vendor/assets/images/icons/renewable.svg +1 -0
- data/vendor/assets/images/icons/results.svg +1 -0
- data/vendor/assets/images/icons/save.svg +1 -0
- data/vendor/assets/images/icons/share.svg +1 -0
- data/vendor/assets/images/icons/shield.svg +1 -0
- data/vendor/assets/images/icons/sim.svg +1 -0
- data/vendor/assets/images/icons/smiley.svg +1 -0
- data/vendor/assets/images/icons/sort.svg +1 -0
- data/vendor/assets/images/icons/speech-circle.svg +1 -0
- data/vendor/assets/images/icons/speech.svg +1 -0
- data/vendor/assets/images/icons/spinner-rebrand.svg +1 -0
- data/vendor/assets/images/icons/spinner.svg +1 -0
- data/vendor/assets/images/icons/star-half.svg +1 -0
- data/vendor/assets/images/icons/star.svg +1 -0
- data/vendor/assets/images/icons/starline-half.svg +1 -0
- data/vendor/assets/images/icons/starline.svg +1 -0
- data/vendor/assets/images/icons/talk.svg +1 -0
- data/vendor/assets/images/icons/tick-circle.svg +1 -0
- data/vendor/assets/images/icons/tick.svg +1 -0
- data/vendor/assets/images/icons/tv.svg +1 -0
- data/vendor/assets/images/icons/twitter-brand.svg +1 -0
- data/vendor/assets/images/icons/twitter.svg +1 -0
- data/vendor/assets/images/icons/ustyle.svg +1 -0
- data/vendor/assets/images/icons/uswitch.svg +1 -0
- data/vendor/assets/images/icons/variable.svg +1 -0
- data/vendor/assets/images/icons/warning-circle.svg +1 -0
- data/vendor/assets/images/icons/warning.svg +1 -0
- data/vendor/assets/images/icons/wifi.svg +1 -0
- data/vendor/assets/images/icons/wiki.svg +1 -0
- data/vendor/assets/images/icons/xml.svg +1 -0
- data/vendor/assets/images/icons.svg +1 -0
- data/vendor/assets/javascripts/ustyle/backdrop.js +56 -0
- data/vendor/assets/javascripts/ustyle/classtoggler.js +76 -0
- data/vendor/assets/javascripts/ustyle/overlay.js +152 -0
- data/vendor/assets/javascripts/ustyle/tabs.js +166 -0
- data/vendor/assets/javascripts/ustyle/utils.js +113 -0
- data/vendor/assets/javascripts/ustyle.js +4 -0
- data/vendor/assets/stylesheets/rebrand-content.scss +1 -0
- data/vendor/assets/stylesheets/rebrand.scss +1 -0
- data/vendor/assets/stylesheets/ustyle/_all.scss +55 -0
- data/vendor/assets/stylesheets/ustyle/_content.scss +5 -0
- data/vendor/assets/stylesheets/ustyle/_global.scss +20 -0
- data/vendor/assets/stylesheets/ustyle/articles/_base.scss +100 -0
- data/vendor/assets/stylesheets/ustyle/articles/_guide.scss +57 -0
- data/vendor/assets/stylesheets/ustyle/articles/_more.scss +31 -0
- data/vendor/assets/stylesheets/ustyle/articles/_news.scss +213 -0
- data/vendor/assets/stylesheets/ustyle/articles/_related.scss +76 -0
- data/vendor/assets/stylesheets/ustyle/basics/_extends.scss +73 -0
- data/vendor/assets/stylesheets/ustyle/basics/_fonts.scss +27 -0
- data/vendor/assets/stylesheets/ustyle/basics/_functions.scss +78 -0
- data/vendor/assets/stylesheets/ustyle/basics/_grid.scss +86 -0
- data/vendor/assets/stylesheets/ustyle/basics/_typography.scss +123 -0
- data/vendor/assets/stylesheets/ustyle/basics/_variables.scss +166 -0
- data/vendor/assets/stylesheets/ustyle/basics/variables/_colors.scss +94 -0
- data/vendor/assets/stylesheets/ustyle/basics/variables/_forms.scss +98 -0
- data/vendor/assets/stylesheets/ustyle/basics/variables/_icons.scss +43 -0
- data/vendor/assets/stylesheets/ustyle/components/_backdrop.scss +23 -0
- data/vendor/assets/stylesheets/ustyle/components/_breadcrumbs.scss +66 -0
- data/vendor/assets/stylesheets/ustyle/components/_button.scss +187 -0
- data/vendor/assets/stylesheets/ustyle/components/_calculator.scss +41 -0
- data/vendor/assets/stylesheets/ustyle/components/_comp-table-row.scss +341 -0
- data/vendor/assets/stylesheets/ustyle/components/_compliance-banner.scss +38 -0
- data/vendor/assets/stylesheets/ustyle/components/_content-group.scss +33 -0
- data/vendor/assets/stylesheets/ustyle/components/_cta.scss +66 -0
- data/vendor/assets/stylesheets/ustyle/components/_grid-classes.scss +52 -0
- data/vendor/assets/stylesheets/ustyle/components/_hero.scss +115 -0
- data/vendor/assets/stylesheets/ustyle/components/_links.scss +26 -0
- data/vendor/assets/stylesheets/ustyle/components/_lists-li.scss +92 -0
- data/vendor/assets/stylesheets/ustyle/components/_lists.scss +39 -0
- data/vendor/assets/stylesheets/ustyle/components/_loader.scss +139 -0
- data/vendor/assets/stylesheets/ustyle/components/_overlay.scss +183 -0
- data/vendor/assets/stylesheets/ustyle/components/_progress.scss +138 -0
- data/vendor/assets/stylesheets/ustyle/components/_promo-banner.scss +131 -0
- data/vendor/assets/stylesheets/ustyle/components/_reminder.scss +87 -0
- data/vendor/assets/stylesheets/ustyle/components/_tab-navigation.scss +114 -0
- data/vendor/assets/stylesheets/ustyle/components/_table-toolbar.scss +91 -0
- data/vendor/assets/stylesheets/ustyle/components/_tabs.scss +300 -0
- data/vendor/assets/stylesheets/ustyle/components/_tooltip.scss +243 -0
- data/vendor/assets/stylesheets/ustyle/components/_usp.scss +88 -0
- data/vendor/assets/stylesheets/ustyle/content/_base.scss +227 -0
- data/vendor/assets/stylesheets/ustyle/content/_c-header.scss +27 -0
- data/vendor/assets/stylesheets/ustyle/content/_c-social.scss +9 -0
- data/vendor/assets/stylesheets/ustyle/content/_c-tabs.scss +30 -0
- data/vendor/assets/stylesheets/ustyle/forms/_base.scss +9 -0
- data/vendor/assets/stylesheets/ustyle/forms/_fields.scss +78 -0
- data/vendor/assets/stylesheets/ustyle/forms/_input-group.scss +154 -0
- data/vendor/assets/stylesheets/ustyle/forms/_input.scss +61 -0
- data/vendor/assets/stylesheets/ustyle/forms/_radio-checkbox.scss +144 -0
- data/vendor/assets/stylesheets/ustyle/forms/_reset.scss +21 -0
- data/vendor/assets/stylesheets/ustyle/forms/_select.scss +154 -0
- data/vendor/assets/stylesheets/ustyle/forms/_textarea.scss +33 -0
- data/vendor/assets/stylesheets/ustyle/forms/_toggle.scss +114 -0
- data/vendor/assets/stylesheets/ustyle/forms/_validation.scss +104 -0
- data/vendor/assets/stylesheets/ustyle/icons/_base.scss +241 -0
- data/vendor/assets/stylesheets/ustyle/mixins/_arrow.scss +51 -0
- data/vendor/assets/stylesheets/ustyle/mixins/_base.scss +7 -0
- data/vendor/assets/stylesheets/ustyle/mixins/_baseline.scss +43 -0
- data/vendor/assets/stylesheets/ustyle/mixins/_forms.scss +84 -0
- data/vendor/assets/stylesheets/ustyle/mixins/_general.scss +24 -0
- data/vendor/assets/stylesheets/ustyle/mixins/_link-colors.scss +44 -0
- data/vendor/assets/stylesheets/ustyle/mixins/_media-query.scss +121 -0
- data/vendor/assets/stylesheets/ustyle/mixins/_typography.scss +98 -0
- data/vendor/assets/stylesheets/ustyle/tables/_base.scss +4 -0
- data/vendor/assets/stylesheets/ustyle/tables/_tables-basic.scss +72 -0
- data/vendor/assets/stylesheets/ustyle/tables/_tables-sortable.scss +72 -0
- data/vendor/assets/stylesheets/ustyle/tables/_tables-with-key-cells.scss +18 -0
- data/vendor/assets/stylesheets/ustyle/tables/_variables.scss +15 -0
- data/vendor/assets/stylesheets/ustyle/utilities/_general.scss +116 -0
- data/vendor/assets/stylesheets/ustyle/utilities/_grid.scss +13 -0
- data/vendor/assets/stylesheets/ustyle/utilities/_images.scss +34 -0
- data/vendor/assets/stylesheets/ustyle/utilities/_responsive.scss +101 -0
- data/vendor/assets/stylesheets/ustyle/utilities/_spacing.scss +73 -0
- data/vendor/assets/stylesheets/ustyle/vendor/normalize.scss +427 -0
- data/vendor/assets/stylesheets/ustyle-content.scss +2 -0
- data/vendor/assets/stylesheets/ustyle.scss +1 -0
- metadata +517 -0
@@ -0,0 +1,227 @@
|
|
1
|
+
@import "ustyle/content/c-header";
|
2
|
+
@import "ustyle/content/c-social";
|
3
|
+
|
4
|
+
$content-heading-font-sizes: 30px, 24px, 20px, 18px, 16px, 16px;
|
5
|
+
|
6
|
+
.us-content {
|
7
|
+
// scss-lint:disable all
|
8
|
+
|
9
|
+
margin-bottom: $gutter-width;
|
10
|
+
|
11
|
+
@include baseline($base-font-size, $root: true);
|
12
|
+
|
13
|
+
@include respond-to(tablet) {
|
14
|
+
@include baseline(18px, $root: true);
|
15
|
+
}
|
16
|
+
|
17
|
+
@include respond-to(desktop) {
|
18
|
+
@include baseline(20px, $root: true);
|
19
|
+
text-rendering: optimizeSpeed;
|
20
|
+
}
|
21
|
+
|
22
|
+
@for $level from 1 through 6 {
|
23
|
+
h#{$level},
|
24
|
+
.us-heading--#{$level} {
|
25
|
+
@include heading($level, $font-sizes: $content-heading-font-sizes);
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
// scss-lint:enable all
|
30
|
+
|
31
|
+
h2,
|
32
|
+
h3,
|
33
|
+
h4,
|
34
|
+
h5,
|
35
|
+
h6 {
|
36
|
+
margin-top: 30px;
|
37
|
+
margin-bottom: .5em;
|
38
|
+
|
39
|
+
@include respond-to(tablet) {
|
40
|
+
margin-top: 50px;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
//
|
44
|
+
// Default typography styling
|
45
|
+
//
|
46
|
+
p,
|
47
|
+
ul,
|
48
|
+
blockquote {
|
49
|
+
a {
|
50
|
+
@extend %anchor-link;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
//
|
54
|
+
// Default image styling
|
55
|
+
//
|
56
|
+
img {
|
57
|
+
height: auto;
|
58
|
+
max-width: 100%;
|
59
|
+
padding-top: 1em;
|
60
|
+
margin-bottom: 1em;
|
61
|
+
}
|
62
|
+
//
|
63
|
+
// Default table styling
|
64
|
+
//
|
65
|
+
table {
|
66
|
+
width: 100%;
|
67
|
+
font-size: 16px;
|
68
|
+
border-collapse: separate;
|
69
|
+
|
70
|
+
img,
|
71
|
+
p {
|
72
|
+
@extend %reset-box-model;
|
73
|
+
}
|
74
|
+
|
75
|
+
a {
|
76
|
+
border: 0;
|
77
|
+
}
|
78
|
+
|
79
|
+
td,
|
80
|
+
th {
|
81
|
+
padding: $gutter-width / 4;
|
82
|
+
text-align: left;
|
83
|
+
vertical-align: middle;
|
84
|
+
border-bottom: 1px solid $c-bordergrey;
|
85
|
+
}
|
86
|
+
|
87
|
+
thead {
|
88
|
+
background-color: $c-keylinegrey;
|
89
|
+
}
|
90
|
+
}
|
91
|
+
//
|
92
|
+
// Figure / image captions
|
93
|
+
//
|
94
|
+
figure {
|
95
|
+
padding: $gutter-width / 2;
|
96
|
+
margin: 0;
|
97
|
+
background-color: $c-bggrey;
|
98
|
+
border: 1px solid $c-keylinegrey;
|
99
|
+
|
100
|
+
img {
|
101
|
+
padding-top: 0;
|
102
|
+
margin-bottom: 0;
|
103
|
+
}
|
104
|
+
|
105
|
+
figcaption {
|
106
|
+
display: inline-block;
|
107
|
+
vertical-align: top;
|
108
|
+
|
109
|
+
@include respond-to(tablet, true) {
|
110
|
+
width: 50%;
|
111
|
+
margin-left: $gutter-width;
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
.strap {
|
117
|
+
@include baseline(18px);
|
118
|
+
|
119
|
+
@include respond-to(tablet) {
|
120
|
+
@include baseline(22px);
|
121
|
+
margin-bottom: 2em;
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
.us-cta {
|
126
|
+
font-size: 16px;
|
127
|
+
}
|
128
|
+
|
129
|
+
.internal-menu {
|
130
|
+
@extend %list;
|
131
|
+
}
|
132
|
+
|
133
|
+
// scss-lint:disable NestingDepth, SelectorDepth
|
134
|
+
.plans-ending {
|
135
|
+
@extend %clearfix;
|
136
|
+
@extend %reset-box-model;
|
137
|
+
list-style: none;
|
138
|
+
border-top: 1px solid $c-blue;
|
139
|
+
|
140
|
+
> li {
|
141
|
+
padding-top: .5em;
|
142
|
+
padding-bottom: .5em;
|
143
|
+
margin: 0;
|
144
|
+
border-bottom: 1px solid $c-blue;
|
145
|
+
}
|
146
|
+
|
147
|
+
ul {
|
148
|
+
list-style: disc;
|
149
|
+
}
|
150
|
+
|
151
|
+
.row {
|
152
|
+
position: relative;
|
153
|
+
font-weight: 700;
|
154
|
+
color: $c-blue;
|
155
|
+
cursor: pointer;
|
156
|
+
transition: color .3s;
|
157
|
+
|
158
|
+
&:after {
|
159
|
+
position: absolute;
|
160
|
+
top: 50%;
|
161
|
+
right: 1em;
|
162
|
+
margin-top: -.75em;
|
163
|
+
font-size: 2em;
|
164
|
+
font-weight: 700;
|
165
|
+
content: "\27E9";
|
166
|
+
}
|
167
|
+
|
168
|
+
&:hover {
|
169
|
+
color: $c-typecyan;
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
173
|
+
img {
|
174
|
+
@extend %reset-box-model;
|
175
|
+
margin: 0 1em 0 1em;
|
176
|
+
vertical-align: middle;
|
177
|
+
}
|
178
|
+
|
179
|
+
.table-container {
|
180
|
+
margin-top: .5em;
|
181
|
+
}
|
182
|
+
|
183
|
+
.us-btn {
|
184
|
+
@extend %btn;
|
185
|
+
@extend %btn--primary;
|
186
|
+
}
|
187
|
+
|
188
|
+
.js & {
|
189
|
+
.table-container {
|
190
|
+
display: none;
|
191
|
+
}
|
192
|
+
}
|
193
|
+
}
|
194
|
+
|
195
|
+
.fuel-breakdown {
|
196
|
+
@extend %clearfix;
|
197
|
+
@extend %reset-box-model;
|
198
|
+
width: 100%;
|
199
|
+
overflow: hidden;
|
200
|
+
list-style: none;
|
201
|
+
|
202
|
+
li {
|
203
|
+
float: left;
|
204
|
+
padding: $gutter-width / 2 0;
|
205
|
+
font-size: 16px;
|
206
|
+
font-size: rem(16px);
|
207
|
+
color: #fff;
|
208
|
+
text-align: center;
|
209
|
+
vertical-align: middle;
|
210
|
+
|
211
|
+
b {
|
212
|
+
display: block;
|
213
|
+
}
|
214
|
+
}
|
215
|
+
|
216
|
+
$fuel-colors: (coal, $c-bordergrey), (gas, $c-typecyan), (nuclear, $c-orange), (renewable, $c-green), (other, $c-typegrey);
|
217
|
+
@each $color in $fuel-colors {
|
218
|
+
.#{nth($color, 1)} {
|
219
|
+
background-color: nth($color, 2);
|
220
|
+
@if nth($color, 1) == other {
|
221
|
+
text-indent: -999em;
|
222
|
+
}
|
223
|
+
}
|
224
|
+
}
|
225
|
+
}
|
226
|
+
// scss-lint:enable NestingDepth, SelectorDepth
|
227
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
.us-content__header {
|
2
|
+
img {
|
3
|
+
display: none;
|
4
|
+
height: auto;
|
5
|
+
max-width: 100%;
|
6
|
+
min-width: 100%;
|
7
|
+
|
8
|
+
@include respond-to(tablet, true) {
|
9
|
+
display: block;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
.us-content__title {
|
15
|
+
position: relative;
|
16
|
+
padding: .5em 0 0 0;
|
17
|
+
margin: 0;
|
18
|
+
clear: both;
|
19
|
+
font-size: 1.6785em; // 26px
|
20
|
+
color: $c-navy;
|
21
|
+
background-color: #fff;
|
22
|
+
|
23
|
+
@include respond-to(desktop, true) {
|
24
|
+
@include heading(1, $extend: false);
|
25
|
+
padding: .5em 0 1em 0;
|
26
|
+
}
|
27
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
.us-content__tabs {
|
2
|
+
@extend %clearfix;
|
3
|
+
padding-right: $gutter-width / 2;
|
4
|
+
padding-left: $gutter-width / 2;
|
5
|
+
margin-bottom: $gutter-width / 2;
|
6
|
+
border-bottom: 1px solid $c-keylinegrey;
|
7
|
+
}
|
8
|
+
|
9
|
+
.us-content__tab-link {
|
10
|
+
@extend %small-font;
|
11
|
+
@include bold-font;
|
12
|
+
@include link-colors($c-typegrey, $c-typecyan, $c-typegrey, $c-typegrey);
|
13
|
+
position: relative;
|
14
|
+
top: 1px;
|
15
|
+
display: inline-block;
|
16
|
+
padding: .5em 1em;
|
17
|
+
color: $c-typegrey-2;
|
18
|
+
background-color: $c-keylinegrey;
|
19
|
+
border-top: 1px solid $c-keylinegrey;
|
20
|
+
border-right: 1px solid $c-keylinegrey;
|
21
|
+
border-left: 1px solid $c-keylinegrey;
|
22
|
+
border-top-right-radius: 2px;
|
23
|
+
border-top-left-radius: 2px;
|
24
|
+
}
|
25
|
+
|
26
|
+
.us-content__tab-link--active {
|
27
|
+
color: $c-typegrey;
|
28
|
+
background-color: #fff;
|
29
|
+
border-color: $c-keylinegrey;
|
30
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
@import "ustyle/forms/reset";
|
2
|
+
@import "ustyle/forms/fields";
|
3
|
+
@import "ustyle/forms/input";
|
4
|
+
@import "ustyle/forms/textarea";
|
5
|
+
@import "ustyle/forms/input-group";
|
6
|
+
@import "ustyle/forms/radio-checkbox";
|
7
|
+
@import "ustyle/forms/toggle";
|
8
|
+
@import "ustyle/forms/select";
|
9
|
+
@import "ustyle/forms/validation";
|
@@ -0,0 +1,78 @@
|
|
1
|
+
// @page Pattern Library/Forms
|
2
|
+
// @name Fields
|
3
|
+
//
|
4
|
+
// @description
|
5
|
+
// This is the basic form field, `.us-field` wrapper for any single input or select. It sets a few layout options by default (margin) and styles any labels within. You can create a fake label style with `.us-faux-label`
|
6
|
+
//
|
7
|
+
// #### Best practices
|
8
|
+
// * All form inputs must have a corresponding label, linked to the input
|
9
|
+
// * The label should be visible; placeholders should not be relied on as not every browser can see them, nor can all screenreaders. A visible permanent label provides continuous context
|
10
|
+
// * For text inputs that are optional, add "(optional)" to the input label
|
11
|
+
// * Add `aria-required` to any input field that must to be filled in
|
12
|
+
// * See our best practices for [writing form labels](../language/microcopy.html#Form text, form labels)
|
13
|
+
//
|
14
|
+
// @state .us-field--blocked - Blocked label styling.
|
15
|
+
// @state .us-field--inline - Inline label styling.
|
16
|
+
//
|
17
|
+
// @markup
|
18
|
+
// <div class="us-field {$modifiers}">
|
19
|
+
// <label for="name">Name</label>
|
20
|
+
// <input class="us-form-input" id="name" name="name" placeholder="Please enter your name">
|
21
|
+
// </div>
|
22
|
+
|
23
|
+
$default-label-color: $c-uswitch-navy !default;
|
24
|
+
$default-label-size: 18px !default;
|
25
|
+
$default-label-width: em(120px, $default-label-size) !default;
|
26
|
+
$default-label-margin: .25em !default;
|
27
|
+
$label-inline-breakpoint: tablet !default;
|
28
|
+
|
29
|
+
%base-block-label {
|
30
|
+
display: block;
|
31
|
+
margin-bottom: $default-label-margin;
|
32
|
+
}
|
33
|
+
|
34
|
+
.us-field {
|
35
|
+
@extend %clearfix;
|
36
|
+
margin-bottom: 1em;
|
37
|
+
|
38
|
+
> label,
|
39
|
+
> .us-faux-label {
|
40
|
+
@include heading-font;
|
41
|
+
margin-right: 1em;
|
42
|
+
font-size: em($default-label-size);
|
43
|
+
color: $default-label-color;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
.us-field-blocked,
|
48
|
+
.us-field--blocked {
|
49
|
+
> label,
|
50
|
+
> .us-faux-label {
|
51
|
+
@extend %base-block-label;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
// This is an inline field, for quick, easy to read forms
|
56
|
+
.us-field--inline {
|
57
|
+
> label,
|
58
|
+
> .us-faux-label {
|
59
|
+
@extend %base-block-label;
|
60
|
+
|
61
|
+
@include respond-to($label-inline-breakpoint, true) {
|
62
|
+
display: inline-block;
|
63
|
+
vertical-align: middle;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
// The toggle field is for radios and checkboxes. It sits within the .us-field to allow
|
69
|
+
// styling for labels of radio/checkboxes
|
70
|
+
.us-field-toggle {
|
71
|
+
label {
|
72
|
+
@include normal-font;
|
73
|
+
padding: .35em .5em;
|
74
|
+
font-weight: normal;
|
75
|
+
line-height: 1.5em;
|
76
|
+
cursor: pointer;
|
77
|
+
}
|
78
|
+
}
|
@@ -0,0 +1,154 @@
|
|
1
|
+
// @page Pattern Library/Forms
|
2
|
+
// @name Input group
|
3
|
+
//
|
4
|
+
// @description
|
5
|
+
// Input groups allow you to add "boxes" to the left or right of an input. These boxes usually contain a visual icon to represent the usage of the input.
|
6
|
+
//
|
7
|
+
// @state .us-input-group--disabled - Disabled state for input groups.
|
8
|
+
// @state .us-input-group--blocked - Fluid style.
|
9
|
+
//
|
10
|
+
// @markup
|
11
|
+
// <div class="us-input-group us-margin-bottom {$modifiers}">
|
12
|
+
// <span class="us-input-group__box"><svg role="presentation" aria-hidden="true" class="us-icon--small us-icon--inputgrey"><use xlink:href="/images/icons.svg#icon-envelope"></use></svg></span>
|
13
|
+
// <input class="us-form-input" type="text" id="email" placeholder="Email" />
|
14
|
+
// </div>
|
15
|
+
//
|
16
|
+
// <div class="us-input-group us-margin-bottom {$modifiers}">
|
17
|
+
// <input class="us-form-input" type="text" id="kwh" />
|
18
|
+
// <span class="us-input-group__box">kWh</span>
|
19
|
+
// </div>
|
20
|
+
//
|
21
|
+
// <div class="us-input-group us-margin-bottom {$modifiers}">
|
22
|
+
// <span class="us-input-group__box"><svg role="presentation" aria-hidden="true" class="us-icon--small us-icon--inputgrey"><use xlink:href="/images/icons.svg#icon-envelope"></use></svg></span>
|
23
|
+
// <input class="us-form-input" type="text" id="email" placeholder="Email" />
|
24
|
+
// <span class="us-input-group__box">kWh</span>
|
25
|
+
// </div>
|
26
|
+
|
27
|
+
.us-input-group {
|
28
|
+
@include input-sizing();
|
29
|
+
|
30
|
+
position: relative;
|
31
|
+
display: table;
|
32
|
+
vertical-align: middle;
|
33
|
+
border-collapse: separate;
|
34
|
+
|
35
|
+
@include respond-to(tablet, true) {
|
36
|
+
display: inline-table;
|
37
|
+
}
|
38
|
+
|
39
|
+
.us-form-input {
|
40
|
+
position: relative;
|
41
|
+
display: table-cell;
|
42
|
+
float: left;
|
43
|
+
width: 100%;
|
44
|
+
height: 100%;
|
45
|
+
|
46
|
+
&--large {
|
47
|
+
height: 100%;
|
48
|
+
}
|
49
|
+
|
50
|
+
&:first-child {
|
51
|
+
border-right: 0;
|
52
|
+
}
|
53
|
+
|
54
|
+
&:last-child {
|
55
|
+
border-left: 0;
|
56
|
+
}
|
57
|
+
|
58
|
+
&:not(:first-child):not(:last-child) {
|
59
|
+
border-right: 0;
|
60
|
+
border-left: 0;
|
61
|
+
}
|
62
|
+
}
|
63
|
+
|
64
|
+
// scss-lint:disable NestingDepth
|
65
|
+
&:not(.us-input-group--disabled) {
|
66
|
+
&:hover .us-input-group__box,
|
67
|
+
&:hover:not(:focus-within) .us-form-input {
|
68
|
+
color: $c-dark-grey;
|
69
|
+
border-color: $c-form-element-border-hover;
|
70
|
+
|
71
|
+
[class^="us-icon--"],
|
72
|
+
.us-icon {
|
73
|
+
fill: $c-dark-grey;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
&:focus-within .us-input-group__box {
|
78
|
+
color: $c-uswitch-navy;
|
79
|
+
border-color: $c-form-element-border-active;
|
80
|
+
|
81
|
+
[class^="us-icon--"],
|
82
|
+
.us-icon {
|
83
|
+
fill: $c-uswitch-navy;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
.us-input-group--disabled {
|
90
|
+
.us-input-group__box {
|
91
|
+
@include form-element-disabled;
|
92
|
+
|
93
|
+
[class^="us-icon--"],
|
94
|
+
.us-icon {
|
95
|
+
opacity: .35;
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
.us-form-input {
|
100
|
+
@include form-element-disabled;
|
101
|
+
}
|
102
|
+
}
|
103
|
+
|
104
|
+
.us-input-group--blocked {
|
105
|
+
width: 100%;
|
106
|
+
|
107
|
+
.us-input-group__box {
|
108
|
+
width: 1%;
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
.us-input-group__box {
|
113
|
+
display: table-cell;
|
114
|
+
width: 1%;
|
115
|
+
padding-right: .5em;
|
116
|
+
padding-left: .5em;
|
117
|
+
color: $c-grey;
|
118
|
+
text-align: center;
|
119
|
+
white-space: nowrap;
|
120
|
+
vertical-align: middle;
|
121
|
+
background-color: $c-form-element-background;
|
122
|
+
border: 1px solid $c-form-element-border;
|
123
|
+
height: 100%;
|
124
|
+
|
125
|
+
@include respond-to(tablet, true) {
|
126
|
+
width: auto;
|
127
|
+
}
|
128
|
+
|
129
|
+
[class^="us-icon--"],
|
130
|
+
.us-icon {
|
131
|
+
fill: $c-grey;
|
132
|
+
vertical-align: middle;
|
133
|
+
}
|
134
|
+
}
|
135
|
+
|
136
|
+
.us-input-group__box:first-child {
|
137
|
+
border-right: 0;
|
138
|
+
}
|
139
|
+
|
140
|
+
.us-input-group__box:last-child {
|
141
|
+
border-left: 0;
|
142
|
+
}
|
143
|
+
|
144
|
+
.us-input-group__box:first-child,
|
145
|
+
.us-input-group .us-form-input:first-child {
|
146
|
+
border-top-right-radius: 0;
|
147
|
+
border-bottom-right-radius: 0;
|
148
|
+
}
|
149
|
+
|
150
|
+
.us-input-group__box:last-child,
|
151
|
+
.us-input-group .us-form-input:last-child {
|
152
|
+
border-bottom-left-radius: 0;
|
153
|
+
border-top-left-radius: 0;
|
154
|
+
}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
// @page Pattern Library/Forms
|
2
|
+
// @name Inputs
|
3
|
+
//
|
4
|
+
// @description
|
5
|
+
// Our standard input styling across the website. This is specifically for text, email, password, search etc. type inputs.
|
6
|
+
//
|
7
|
+
// #### Best practices
|
8
|
+
// * Specifying an appropriate [type attribute](https://developer.mozilla.org/en/docs/Web/HTML/Element/Input#attr-type) (e.g. type="tel" for telephone number fields) will not only control what input is displayed, but also helps mobile devices select a keyboard layout suitable for entering that type of data.
|
9
|
+
// * Where appropriate use the [autocomplete attribute](https://developer.mozilla.org/en/docs/Web/HTML/Element/Input#attr-autocomplete) to make it easier for the browser to fill in fields on the users behalf, saving them time on lengthy forms.
|
10
|
+
//
|
11
|
+
// @state .us-form-input--large - Larger input style.
|
12
|
+
// @state .us-form-input--blocked - Fluid input style.
|
13
|
+
// @state .us-form-input--error - Visual feedback for when the input has an error.
|
14
|
+
// @state .us-form-input--success - Visual feedback for when success needs to be communicated to the user.
|
15
|
+
// @state .us-form-input--disabled - Inactive state for form inputs that can't be interacted with.
|
16
|
+
//
|
17
|
+
// @markup
|
18
|
+
// <input class="us-form-input {$modifiers}" type="text" placeholder="Placeholder">
|
19
|
+
|
20
|
+
$input-placeholder-color: $c-grey !default;
|
21
|
+
|
22
|
+
.us-form-input {
|
23
|
+
@extend %base-form-element;
|
24
|
+
@extend %input-background--normalise;
|
25
|
+
@include placeholder($input-placeholder-color);
|
26
|
+
@include input-sizing();
|
27
|
+
outline: 0;
|
28
|
+
box-shadow: none;
|
29
|
+
|
30
|
+
&:focus {
|
31
|
+
@include placeholder($c-uswitch-navy);
|
32
|
+
}
|
33
|
+
|
34
|
+
@if $media-query-legacy-support {
|
35
|
+
.ie8 & {
|
36
|
+
height: auto;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
.us-form-input.large,
|
42
|
+
.us-form-input--large {
|
43
|
+
@include input-sizing(large);
|
44
|
+
}
|
45
|
+
|
46
|
+
.us-form-input--blocked {
|
47
|
+
width: 100%;
|
48
|
+
}
|
49
|
+
|
50
|
+
.us-form-input--error {
|
51
|
+
@extend %base-form-element--error;
|
52
|
+
}
|
53
|
+
|
54
|
+
.us-form-input--success {
|
55
|
+
@extend %base-form-element--success;
|
56
|
+
}
|
57
|
+
|
58
|
+
.us-form-input:disabled,
|
59
|
+
.us-form-input--disabled {
|
60
|
+
@include form-element-disabled;
|
61
|
+
}
|