├── CNAME ├── assets ├── scss │ ├── lib │ │ ├── settings │ │ │ ├── _px-to-em.scss │ │ │ ├── _asset-pipeline.scss │ │ │ ├── _prefixer.scss │ │ │ ├── _disable-warnings.scss │ │ │ ├── _visual-grid.scss │ │ │ └── _grid.scss │ │ ├── css3 │ │ │ ├── _appearance.scss │ │ │ ├── _user-select.scss │ │ │ ├── _calc.scss │ │ │ ├── _backface-visibility.scss │ │ │ ├── _hyphens.scss │ │ │ ├── _filter.scss │ │ │ ├── _font-feature-settings.scss │ │ │ ├── _placeholder.scss │ │ │ ├── _perspective.scss │ │ │ ├── _image-rendering.scss │ │ │ ├── _hidpi-media-query.scss │ │ │ ├── _transform.scss │ │ │ ├── _font-face.scss │ │ │ ├── _text-decoration.scss │ │ │ ├── _selection.scss │ │ │ ├── _keyframes.scss │ │ │ ├── _columns.scss │ │ │ ├── _linear-gradient.scss │ │ │ ├── _background-image.scss │ │ │ ├── _radial-gradient.scss │ │ │ ├── _animation.scss │ │ │ ├── _background.scss │ │ │ ├── _border-image.scss │ │ │ └── _transition.scss │ │ ├── _neat-helpers.scss │ │ ├── grid │ │ │ ├── _box-sizing.scss │ │ │ ├── _fill-parent.scss │ │ │ ├── _pad.scss │ │ │ ├── _display-context.scss │ │ │ ├── _direction-context.scss │ │ │ ├── _outer-container.scss │ │ │ ├── _visual-grid.scss │ │ │ ├── _private.scss │ │ │ ├── _shift.scss │ │ │ ├── _row.scss │ │ │ ├── _omega.scss │ │ │ └── _media.scss │ │ ├── functions │ │ │ ├── _is-number.scss │ │ │ ├── _assign-inputs.scss │ │ │ ├── _is-size.scss │ │ │ ├── _is-length.scss │ │ │ ├── _contains-falsy.scss │ │ │ ├── _px-to-rem.scss │ │ │ ├── _strip-units.scss │ │ │ ├── _px-to-em.scss │ │ │ ├── _shade.scss │ │ │ ├── _tint.scss │ │ │ ├── _contains.scss │ │ │ ├── _is-light.scss │ │ │ ├── _transition-property-name.scss │ │ │ ├── _unpack.scss │ │ │ ├── _modular-scale.scss │ │ │ └── _new-breakpoint.scss │ │ ├── helpers │ │ │ ├── _shape-size-stripper.scss │ │ │ ├── _gradient-positions-parser.scss │ │ │ ├── _radial-positions-parser.scss │ │ │ ├── _linear-angle-parser.scss │ │ │ ├── _convert-units.scss │ │ │ ├── _render-gradients.scss │ │ │ ├── _linear-side-corner-parser.scss │ │ │ ├── _font-source-declaration.scss │ │ │ ├── _linear-gradient-parser.scss │ │ │ ├── _str-to-num.scss │ │ │ ├── _radial-gradient-parser.scss │ │ │ ├── _radial-arg-parser.scss │ │ │ ├── _linear-positions-parser.scss │ │ │ └── _directional-values.scss │ │ ├── mixins │ │ │ └── _clearfix.scss │ │ ├── addons │ │ │ ├── _clearfix.scss │ │ │ ├── _margin.scss │ │ │ ├── _border-width.scss │ │ │ ├── _padding.scss │ │ │ ├── _border-style.scss │ │ │ ├── _font-stacks.scss │ │ │ ├── _word-wrap.scss │ │ │ ├── _border-color.scss │ │ │ ├── _ellipsis.scss │ │ │ ├── _hide-text.scss │ │ │ ├── _retina-image.scss │ │ │ ├── _border-radius.scss │ │ │ ├── _size.scss │ │ │ ├── _position.scss │ │ │ ├── _timing-functions.scss │ │ │ ├── _prefixer.scss │ │ │ ├── _buttons.scss │ │ │ └── _triangle.scss │ │ ├── _neat.scss │ │ └── _bourbon.scss │ ├── nasawds.scss │ ├── core │ │ ├── _grid-settings.scss │ │ ├── _variables-vendor.scss │ │ ├── _defaults.scss │ │ ├── _base.scss │ │ └── _fonts.scss │ ├── components │ │ ├── _media-block.scss │ │ ├── _skipnav.scss │ │ ├── _sidenav.scss │ │ ├── _section.scss │ │ ├── _layout.scss │ │ ├── _graphic-list.scss │ │ ├── _hero.scss │ │ ├── _search.scss │ │ └── _forms.scss │ ├── elements │ │ ├── _figure.scss │ │ ├── _list.scss │ │ ├── _labels.scss │ │ ├── _embed.scss │ │ └── _table.scss │ ├── uswds.scss │ └── _variables-nasa.scss ├── img │ ├── hero.png │ ├── plus.png │ ├── close.png │ ├── minus.png │ ├── search.png │ ├── correct8.png │ ├── correct9.png │ ├── hero(old).png │ ├── logo-img.png │ ├── minus-alt.png │ ├── plus-alt.png │ ├── alerts │ │ ├── error.png │ │ ├── info.png │ │ ├── success.png │ │ ├── warning.png │ │ ├── success.svg │ │ ├── warning.svg │ │ ├── error.svg │ │ └── info.svg │ ├── arrow-both.png │ ├── arrow-down.png │ ├── arrow-right.png │ ├── circle-124.png │ ├── general │ │ ├── apod.jpg │ │ ├── earth.png │ │ ├── houston_2.png │ │ ├── cyclone_jasper.png │ │ ├── insight_photo.png │ │ ├── global_suomi_NPP.png │ │ ├── US_nighttime_lights.jpg │ │ ├── genelab_search_html_api.png │ │ ├── genelab_search_json_api.png │ │ └── harmonized_landsat_sentinel-2.png │ ├── search-alt.png │ ├── close-primary.png │ ├── external-link.png │ ├── search-primary.png │ ├── us_flag_small.png │ ├── angle-arrow-down.png │ ├── external-link-alt.png │ ├── favicons │ │ ├── favicon.ico │ │ ├── favicon.png │ │ ├── favicon-16.png │ │ ├── favicon-40.png │ │ ├── favicon-57.png │ │ ├── favicon-72.png │ │ ├── favicon-114.png │ │ ├── favicon-144.png │ │ ├── favicon-192.png │ │ └── favicon-usa-57.png │ ├── external-link-black.png │ ├── external-link-hover.png │ ├── angle-arrow-down-hover.png │ ├── angle-arrow-up-primary.png │ ├── social-icons │ │ ├── png │ │ │ ├── rss25.png │ │ │ ├── flickr.png │ │ │ ├── facebook25.png │ │ │ ├── github32.png │ │ │ ├── twitter16.png │ │ │ └── youtube15.png │ │ └── svg │ │ │ ├── facebook25.svg │ │ │ ├── twitter16.svg │ │ │ ├── rss25.svg │ │ │ └── youtube15.svg │ ├── angle-arrow-down-primary.png │ ├── external-link-alt-hover.png │ ├── angle-arrow-up-primary-hover.png │ ├── angle-arrow-down-primary-hover.png │ ├── arrow-down.svg │ ├── minus.svg │ ├── minus-alt.svg │ ├── icon-https.svg │ ├── correct8.svg │ ├── correct9.svg │ ├── angle-arrow-down.svg │ ├── angle-arrow-down-hover.svg │ ├── angle-arrow-down-primary.svg │ ├── angle-arrow-up-primary.svg │ ├── angle-arrow-down-primary-hover.svg │ ├── angle-arrow-up-primary-hover.svg │ ├── arrow-right.svg │ ├── icon-dot-gov.svg │ ├── plus.svg │ ├── plus-alt.svg │ ├── arrow-both.svg │ ├── search.svg │ ├── search-alt.svg │ ├── external-link-alt.svg │ ├── external-link.svg │ ├── external-link-black.svg │ ├── external-link-hover.svg │ ├── external-link-alt-hover.svg │ ├── close.svg │ ├── close-primary.svg │ └── search-primary.svg ├── footer │ ├── img │ │ ├── png │ │ │ ├── flickr.png │ │ │ ├── rss25.png │ │ │ ├── github32.png │ │ │ ├── facebook25.png │ │ │ ├── twitter16.png │ │ │ └── youtube15.png │ │ ├── favicon-192.png │ │ └── svg │ │ │ ├── facebook25.svg │ │ │ ├── twitter16.svg │ │ │ ├── rss25.svg │ │ │ └── youtube15.svg │ ├── OIT-footer.js │ └── OIT-footer.html ├── fonts │ ├── merriweather-bold-webfont.eot │ ├── merriweather-bold-webfont.ttf │ ├── merriweather-bold-webfont.woff │ ├── merriweather-bold-webfont.woff2 │ ├── merriweather-italic-webfont.eot │ ├── merriweather-italic-webfont.ttf │ ├── merriweather-light-webfont.eot │ ├── merriweather-light-webfont.ttf │ ├── merriweather-light-webfont.woff │ ├── sourcesanspro-bold-webfont.eot │ ├── sourcesanspro-bold-webfont.ttf │ ├── sourcesanspro-bold-webfont.woff │ ├── sourcesanspro-light-webfont.eot │ ├── sourcesanspro-light-webfont.ttf │ ├── merriweather-italic-webfont.woff │ ├── merriweather-italic-webfont.woff2 │ ├── merriweather-light-webfont.woff2 │ ├── merriweather-regular-webfont.eot │ ├── merriweather-regular-webfont.ttf │ ├── merriweather-regular-webfont.woff │ ├── merriweather-regular-webfont.woff2 │ ├── sourcesanspro-bold-webfont.woff2 │ ├── sourcesanspro-italic-webfont.eot │ ├── sourcesanspro-italic-webfont.ttf │ ├── sourcesanspro-italic-webfont.woff │ ├── sourcesanspro-italic-webfont.woff2 │ ├── sourcesanspro-light-webfont.woff │ ├── sourcesanspro-light-webfont.woff2 │ ├── sourcesanspro-regular-webfont.eot │ ├── sourcesanspro-regular-webfont.ttf │ ├── sourcesanspro-regular-webfont.woff │ └── sourcesanspro-regular-webfont.woff2 ├── insight │ ├── insight_mars_wind_rose.png │ ├── InSight Weather API Documentation.odt │ └── InSight Weather API Documentation.pdf ├── html │ ├── recoverKey.html │ ├── overview.html │ └── browseAPI.html ├── api-list.component.html ├── README.md └── js │ ├── contentLoader.js │ └── setup.js ├── .vscode └── settings.json ├── .gitignore ├── contact ├── .github └── workflows │ └── main.yml ├── CONTRIBUTING.md ├── README.md └── release-tracker-github.sh /CNAME: -------------------------------------------------------------------------------- 1 | api.nasa.gov -------------------------------------------------------------------------------- /assets/scss/lib/settings/_px-to-em.scss: -------------------------------------------------------------------------------- 1 | $em-base: 16px !default; 2 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "liveServer.settings.port": 5501 3 | } -------------------------------------------------------------------------------- /assets/img/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/hero.png -------------------------------------------------------------------------------- /assets/img/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/plus.png -------------------------------------------------------------------------------- /assets/img/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/close.png -------------------------------------------------------------------------------- /assets/img/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/minus.png -------------------------------------------------------------------------------- /assets/img/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/search.png -------------------------------------------------------------------------------- /assets/img/correct8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/correct8.png -------------------------------------------------------------------------------- /assets/img/correct9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/correct9.png -------------------------------------------------------------------------------- /assets/img/hero(old).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/hero(old).png -------------------------------------------------------------------------------- /assets/img/logo-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/logo-img.png -------------------------------------------------------------------------------- /assets/img/minus-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/minus-alt.png -------------------------------------------------------------------------------- /assets/img/plus-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/plus-alt.png -------------------------------------------------------------------------------- /assets/img/alerts/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/alerts/error.png -------------------------------------------------------------------------------- /assets/img/alerts/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/alerts/info.png -------------------------------------------------------------------------------- /assets/img/arrow-both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/arrow-both.png -------------------------------------------------------------------------------- /assets/img/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/arrow-down.png -------------------------------------------------------------------------------- /assets/img/arrow-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/arrow-right.png -------------------------------------------------------------------------------- /assets/img/circle-124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/circle-124.png -------------------------------------------------------------------------------- /assets/img/general/apod.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/general/apod.jpg -------------------------------------------------------------------------------- /assets/img/search-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/search-alt.png -------------------------------------------------------------------------------- /assets/img/alerts/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/alerts/success.png -------------------------------------------------------------------------------- /assets/img/alerts/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/alerts/warning.png -------------------------------------------------------------------------------- /assets/img/close-primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/close-primary.png -------------------------------------------------------------------------------- /assets/img/external-link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/external-link.png -------------------------------------------------------------------------------- /assets/img/general/earth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/general/earth.png -------------------------------------------------------------------------------- /assets/img/search-primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/search-primary.png -------------------------------------------------------------------------------- /assets/img/us_flag_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/us_flag_small.png -------------------------------------------------------------------------------- /assets/scss/nasawds.scss: -------------------------------------------------------------------------------- 1 | /*! nasawds @version */ 2 | 3 | @import 'variables-nasa'; 4 | @import 'uswds'; 5 | -------------------------------------------------------------------------------- /assets/footer/img/png/flickr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/footer/img/png/flickr.png -------------------------------------------------------------------------------- /assets/footer/img/png/rss25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/footer/img/png/rss25.png -------------------------------------------------------------------------------- /assets/img/angle-arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/angle-arrow-down.png -------------------------------------------------------------------------------- /assets/img/external-link-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/external-link-alt.png -------------------------------------------------------------------------------- /assets/img/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/favicons/favicon.ico -------------------------------------------------------------------------------- /assets/img/favicons/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/favicons/favicon.png -------------------------------------------------------------------------------- /assets/img/general/houston_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/general/houston_2.png -------------------------------------------------------------------------------- /assets/footer/img/favicon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/footer/img/favicon-192.png -------------------------------------------------------------------------------- /assets/footer/img/png/github32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/footer/img/png/github32.png -------------------------------------------------------------------------------- /assets/img/external-link-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/external-link-black.png -------------------------------------------------------------------------------- /assets/img/external-link-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/external-link-hover.png -------------------------------------------------------------------------------- /assets/img/favicons/favicon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/favicons/favicon-16.png -------------------------------------------------------------------------------- /assets/img/favicons/favicon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/favicons/favicon-40.png -------------------------------------------------------------------------------- /assets/img/favicons/favicon-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/favicons/favicon-57.png -------------------------------------------------------------------------------- /assets/img/favicons/favicon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/favicons/favicon-72.png -------------------------------------------------------------------------------- /assets/footer/img/png/facebook25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/footer/img/png/facebook25.png -------------------------------------------------------------------------------- /assets/footer/img/png/twitter16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/footer/img/png/twitter16.png -------------------------------------------------------------------------------- /assets/footer/img/png/youtube15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/footer/img/png/youtube15.png -------------------------------------------------------------------------------- /assets/img/angle-arrow-down-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/angle-arrow-down-hover.png -------------------------------------------------------------------------------- /assets/img/angle-arrow-up-primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/angle-arrow-up-primary.png -------------------------------------------------------------------------------- /assets/img/favicons/favicon-114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/favicons/favicon-114.png -------------------------------------------------------------------------------- /assets/img/favicons/favicon-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/favicons/favicon-144.png -------------------------------------------------------------------------------- /assets/img/favicons/favicon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/favicons/favicon-192.png -------------------------------------------------------------------------------- /assets/img/general/cyclone_jasper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/general/cyclone_jasper.png -------------------------------------------------------------------------------- /assets/img/general/insight_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/general/insight_photo.png -------------------------------------------------------------------------------- /assets/img/social-icons/png/rss25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/social-icons/png/rss25.png -------------------------------------------------------------------------------- /assets/img/angle-arrow-down-primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/angle-arrow-down-primary.png -------------------------------------------------------------------------------- /assets/img/external-link-alt-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/external-link-alt-hover.png -------------------------------------------------------------------------------- /assets/img/favicons/favicon-usa-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/favicons/favicon-usa-57.png -------------------------------------------------------------------------------- /assets/img/general/global_suomi_NPP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/general/global_suomi_NPP.png -------------------------------------------------------------------------------- /assets/img/social-icons/png/flickr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/social-icons/png/flickr.png -------------------------------------------------------------------------------- /assets/fonts/merriweather-bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-bold-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/merriweather-bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-bold-webfont.ttf -------------------------------------------------------------------------------- /assets/img/general/US_nighttime_lights.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/general/US_nighttime_lights.jpg -------------------------------------------------------------------------------- /assets/img/social-icons/png/facebook25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/social-icons/png/facebook25.png -------------------------------------------------------------------------------- /assets/img/social-icons/png/github32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/social-icons/png/github32.png -------------------------------------------------------------------------------- /assets/img/social-icons/png/twitter16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/social-icons/png/twitter16.png -------------------------------------------------------------------------------- /assets/img/social-icons/png/youtube15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/social-icons/png/youtube15.png -------------------------------------------------------------------------------- /assets/insight/insight_mars_wind_rose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/insight/insight_mars_wind_rose.png -------------------------------------------------------------------------------- /assets/fonts/merriweather-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-bold-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/merriweather-bold-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-bold-webfont.woff2 -------------------------------------------------------------------------------- /assets/fonts/merriweather-italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-italic-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/merriweather-italic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-italic-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/merriweather-light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-light-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/merriweather-light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-light-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/merriweather-light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-light-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-bold-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-bold-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-bold-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-light-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-light-webfont.ttf -------------------------------------------------------------------------------- /assets/img/angle-arrow-up-primary-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/angle-arrow-up-primary-hover.png -------------------------------------------------------------------------------- /assets/fonts/merriweather-italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-italic-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/merriweather-italic-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-italic-webfont.woff2 -------------------------------------------------------------------------------- /assets/fonts/merriweather-light-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-light-webfont.woff2 -------------------------------------------------------------------------------- /assets/fonts/merriweather-regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-regular-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/merriweather-regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-regular-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/merriweather-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-regular-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/merriweather-regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/merriweather-regular-webfont.woff2 -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-bold-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-bold-webfont.woff2 -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-italic-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-italic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-italic-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-italic-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-italic-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-italic-webfont.woff2 -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-light-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-light-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-light-webfont.woff2 -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-regular-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-regular-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-regular-webfont.woff -------------------------------------------------------------------------------- /assets/img/angle-arrow-down-primary-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/angle-arrow-down-primary-hover.png -------------------------------------------------------------------------------- /assets/img/general/genelab_search_html_api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/general/genelab_search_html_api.png -------------------------------------------------------------------------------- /assets/img/general/genelab_search_json_api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/general/genelab_search_json_api.png -------------------------------------------------------------------------------- /assets/scss/lib/css3/_appearance.scss: -------------------------------------------------------------------------------- 1 | @mixin appearance($value) { 2 | @include prefixer(appearance, $value, webkit moz ms o spec); 3 | } 4 | -------------------------------------------------------------------------------- /assets/fonts/sourcesanspro-regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/fonts/sourcesanspro-regular-webfont.woff2 -------------------------------------------------------------------------------- /assets/img/general/harmonized_landsat_sentinel-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/img/general/harmonized_landsat_sentinel-2.png -------------------------------------------------------------------------------- /assets/insight/InSight Weather API Documentation.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/insight/InSight Weather API Documentation.odt -------------------------------------------------------------------------------- /assets/insight/InSight Weather API Documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/api-docs/HEAD/assets/insight/InSight Weather API Documentation.pdf -------------------------------------------------------------------------------- /assets/scss/lib/css3/_user-select.scss: -------------------------------------------------------------------------------- 1 | @mixin user-select($value: none) { 2 | @include prefixer(user-select, $value, webkit moz ms spec); 3 | } 4 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_calc.scss: -------------------------------------------------------------------------------- 1 | @mixin calc($property, $value) { 2 | #{$property}: -webkit-calc(#{$value}); 3 | #{$property}: calc(#{$value}); 4 | } 5 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_backface-visibility.scss: -------------------------------------------------------------------------------- 1 | @mixin backface-visibility($visibility) { 2 | @include prefixer(backface-visibility, $visibility, webkit spec); 3 | } 4 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_hyphens.scss: -------------------------------------------------------------------------------- 1 | @mixin hyphens($hyphenation: none) { 2 | // none | manual | auto 3 | @include prefixer(hyphens, $hyphenation, webkit moz ms spec); 4 | } 5 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_filter.scss: -------------------------------------------------------------------------------- 1 | @mixin filter($function: none) { 2 | // [ 3 | @include prefixer(perspective, $depth, webkit moz spec); 4 | } 5 | 6 | @mixin perspective-origin($value: 50% 50%) { 7 | @include prefixer(perspective-origin, $value, webkit moz spec); 8 | } 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | *.rbc 3 | .bundle 4 | .config 5 | coverage 6 | InstalledFiles 7 | lib/bundler/man 8 | pkg 9 | rdoc 10 | spec/reports 11 | test/tmp 12 | test/version_tmp 13 | tmp 14 | *.DS_STORE 15 | build/ 16 | .cache 17 | 18 | # YARD artifacts 19 | .yardoc 20 | _yardoc 21 | doc/ 22 | .idea/ -------------------------------------------------------------------------------- /assets/scss/elements/_figure.scss: -------------------------------------------------------------------------------- 1 | img { 2 | max-width: 100%; 3 | } 4 | 5 | // TODO: Add documentation instructions for using this class on image links 6 | @mixin media-link { 7 | display: inline-block; 8 | line-height: 0; 9 | } 10 | 11 | .media_link { 12 | @include media-link(); 13 | } 14 | -------------------------------------------------------------------------------- /assets/scss/lib/_neat-helpers.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | @import "mixins/clearfix"; 3 | 4 | // Functions 5 | @import "functions/private"; 6 | @import "functions/new-breakpoint"; 7 | 8 | // Settings 9 | @import "settings/grid"; 10 | @import "settings/visual-grid"; 11 | @import "settings/disable-warnings"; 12 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_box-sizing.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | @if $border-box-sizing == true { 4 | html { // http://bit.ly/1qk2tVR 5 | box-sizing: border-box; 6 | } 7 | 8 | * { 9 | &, 10 | &::after, 11 | &::before { 12 | box-sizing: inherit; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_is-number.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks for a valid number. 4 | /// 5 | /// @param {Number} $value 6 | /// 7 | /// @require {function} contains 8 | 9 | @function is-number($value) { 10 | @return contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value); 11 | } 12 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_assign-inputs.scss: -------------------------------------------------------------------------------- 1 | @function assign-inputs($inputs, $pseudo: null) { 2 | $list: (); 3 | 4 | @each $input in $inputs { 5 | $input: unquote($input); 6 | $input: if($pseudo, $input + ":" + $pseudo, $input); 7 | $list: append($list, $input, comma); 8 | } 9 | 10 | @return $list; 11 | } 12 | -------------------------------------------------------------------------------- /assets/scss/lib/settings/_prefixer.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Global variables to enable or disable vendor prefixes 4 | 5 | $prefix-for-webkit: true !default; 6 | $prefix-for-mozilla: true !default; 7 | $prefix-for-microsoft: true !default; 8 | $prefix-for-opera: true !default; 9 | $prefix-for-spec: true !default; 10 | -------------------------------------------------------------------------------- /contact: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | NASA API Contact Page 5 | 6 | 7 |

API.nasa.gov Contact Page

8 |

Please email us at hq-open-innovation@mail.nasa.gov

9 | 10 | -------------------------------------------------------------------------------- /assets/scss/lib/settings/_disable-warnings.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag. 4 | /// 5 | /// @type Bool 6 | 7 | $disable-warnings: false !default; 8 | 9 | @mixin -neat-warn($message) { 10 | @if $disable-warnings == false { 11 | @warn "#{$message}"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_shape-size-stripper.scss: -------------------------------------------------------------------------------- 1 | @function _shape-size-stripper($shape-size) { 2 | $shape-size-spec: null; 3 | @each $value in $shape-size { 4 | @if ($value == "cover") or ($value == "contain") { 5 | $value: null; 6 | } 7 | $shape-size-spec: "#{$shape-size-spec} #{$value}"; 8 | } 9 | @return $shape-size-spec; 10 | } 11 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_is-size.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks for a valid CSS size. 4 | /// 5 | /// @param {String} $value 6 | /// 7 | /// @require {function} contains 8 | /// @require {function} is-length 9 | 10 | @function is-size($value) { 11 | @return is-length($value) 12 | or contains("fill" "fit-content" "min-content" "max-content", $value); 13 | } 14 | -------------------------------------------------------------------------------- /assets/scss/core/_variables-vendor.scss: -------------------------------------------------------------------------------- 1 | /// When set to true, it sets the box-sizing property of all elements to `border-box`. Set with a `!global` flag. 2 | /// 3 | /// @type Bool 4 | /// 5 | /// @example css - CSS Output 6 | /// html { 7 | /// box-sizing: border-box; } 8 | /// 9 | /// *, *::after, *::before { 10 | /// box-sizing: inherit; 11 | /// } 12 | $border-box-sizing: false; 13 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_is-length.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks for a valid CSS length. 4 | /// 5 | /// @param {String} $value 6 | 7 | @function is-length($value) { 8 | @return type-of($value) != "null" and (str-slice($value + "", 1, 4) == "calc" 9 | or index(auto inherit initial 0, $value) 10 | or (type-of($value) == "number" and not(unitless($value)))); 11 | } 12 | -------------------------------------------------------------------------------- /assets/scss/elements/_list.scss: -------------------------------------------------------------------------------- 1 | ul, 2 | ol { 3 | @include margin(1em null); 4 | padding-left: 1.94em; // Approximately 15px left padding at default font size 5 | } 6 | 7 | li { 8 | line-height: $base-line-height; 9 | margin-bottom: 0.5em; 10 | 11 | &:last-child { 12 | margin-bottom: 0; 13 | } 14 | } 15 | 16 | // Unstyled lists 17 | .usa-unstyled-list { 18 | @include unstyled-list; 19 | } 20 | -------------------------------------------------------------------------------- /assets/img/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/footer/img/svg/facebook25.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/social-icons/svg/facebook25.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_image-rendering.scss: -------------------------------------------------------------------------------- 1 | @mixin image-rendering ($mode:auto) { 2 | 3 | @if ($mode == crisp-edges) { 4 | -ms-interpolation-mode: nearest-neighbor; // IE8+ 5 | image-rendering: -moz-crisp-edges; 6 | image-rendering: -o-crisp-edges; 7 | image-rendering: -webkit-optimize-contrast; 8 | image-rendering: crisp-edges; 9 | } 10 | 11 | @else { 12 | image-rendering: $mode; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_contains-falsy.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks if a list does not contains a value. 4 | /// 5 | /// @access private 6 | /// 7 | /// @param {List} $list 8 | /// The list to check against. 9 | /// 10 | /// @return {Bool} 11 | 12 | @function contains-falsy($list) { 13 | @each $item in $list { 14 | @if not $item { 15 | @return true; 16 | } 17 | } 18 | 19 | @return false; 20 | } 21 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_px-to-rem.scss: -------------------------------------------------------------------------------- 1 | // Convert pixels to rems 2 | // eg. for a relational value of 12px write rem(12) 3 | // Assumes $em-base is the font-size of 4 | 5 | @function rem($pxval) { 6 | @if not unitless($pxval) { 7 | $pxval: strip-units($pxval); 8 | } 9 | 10 | $base: $em-base; 11 | @if not unitless($base) { 12 | $base: strip-units($base); 13 | } 14 | @return ($pxval / $base) * 1rem; 15 | } 16 | -------------------------------------------------------------------------------- /assets/img/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_strip-units.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Strips the unit from a number. 4 | /// 5 | /// @param {Number (With Unit)} $value 6 | /// 7 | /// @example scss - Usage 8 | /// $dimension: strip-units(10em); 9 | /// 10 | /// @example css - CSS Output 11 | /// $dimension: 10; 12 | /// 13 | /// @return {Number (Unitless)} 14 | 15 | @function strip-units($value) { 16 | @return ($value / ($value * 0 + 1)); 17 | } 18 | -------------------------------------------------------------------------------- /assets/scss/components/_skipnav.scss: -------------------------------------------------------------------------------- 1 | .usa-skipnav { 2 | background: transparent; 3 | color: $color-base; 4 | left: 0; 5 | padding: 1rem 1.5rem; 6 | position: absolute; 7 | top: -4.2rem; 8 | transition: all 0.2s ease-in-out; 9 | z-index: 100; 10 | 11 | &:focus { 12 | background: $color-white; 13 | left: 0; 14 | outline: 0; 15 | position: absolute; 16 | top: 0; 17 | transition: all 0.2s ease-in-out; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_px-to-em.scss: -------------------------------------------------------------------------------- 1 | // Convert pixels to ems 2 | // eg. for a relational value of 12px write em(12) when the parent is 16px 3 | // if the parent is another value say 24px write em(12, 24) 4 | 5 | @function em($pxval, $base: $em-base) { 6 | @if not unitless($pxval) { 7 | $pxval: strip-units($pxval); 8 | } 9 | @if not unitless($base) { 10 | $base: strip-units($base); 11 | } 12 | @return ($pxval / $base) * 1em; 13 | } 14 | -------------------------------------------------------------------------------- /assets/img/minus-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/core/_defaults.scss: -------------------------------------------------------------------------------- 1 | // XXX This file has been deprecated in favor of _variables.scss, and is no 2 | // longer relevant. Instead, set any variables that you wish to override, then 3 | // @import '{path/to/uswds/}core/variables'; 4 | 5 | // For backwards compatibility with consumers of _defaults.scss, we just 6 | // re-import _variables here. This should be a noop if it has already been 7 | // imported, since every variable is declared with `!default`. 8 | @import './variables'; 9 | -------------------------------------------------------------------------------- /assets/scss/elements/_labels.scss: -------------------------------------------------------------------------------- 1 | .usa-label { 2 | background-color: $color-gray; 3 | border-radius: $label-border-radius; 4 | color: $color-white; 5 | font-size: $h5-font-size; 6 | margin-right: 0.5rem; 7 | padding: 0.1rem 0.7rem; 8 | text-transform: uppercase; 9 | 10 | &:only-of-type { 11 | margin-right: 0; 12 | } 13 | } 14 | 15 | .usa-label-big { 16 | @extend .usa-label; 17 | font-size: $base-font-size; 18 | padding-left: 0.9rem; 19 | padding-right: 0.9rem; 20 | } 21 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_fill-parent.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Forces the element to fill its parent container. 4 | /// 5 | /// @example scss - Usage 6 | /// .element { 7 | /// @include fill-parent; 8 | /// } 9 | /// 10 | /// @example css - CSS Output 11 | /// .element { 12 | /// width: 100%; 13 | /// box-sizing: border-box; 14 | /// } 15 | 16 | @mixin fill-parent() { 17 | width: 100%; 18 | 19 | @if $border-box-sizing == false { 20 | box-sizing: border-box; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /assets/img/icon-https.svg: -------------------------------------------------------------------------------- 1 | https icon 2 | -------------------------------------------------------------------------------- /assets/img/correct8.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/correct9.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_hidpi-media-query.scss: -------------------------------------------------------------------------------- 1 | // HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/) 2 | @mixin hidpi($ratio: 1.3) { 3 | @media only screen and (-webkit-min-device-pixel-ratio: $ratio), 4 | only screen and (min--moz-device-pixel-ratio: $ratio), 5 | only screen and (-o-min-device-pixel-ratio: #{$ratio}/1), 6 | only screen and (min-resolution: round($ratio * 96dpi)), 7 | only screen and (min-resolution: $ratio * 1dppx) { 8 | @content; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /assets/img/angle-arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/lib/mixins/_clearfix.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides an easy way to include a clearfix for containing floats. 4 | /// 5 | /// @link http://goo.gl/yP5hiZ 6 | /// 7 | /// @example scss 8 | /// .element { 9 | /// @include clearfix; 10 | /// } 11 | /// 12 | /// @example css 13 | /// .element::after { 14 | /// clear: both; 15 | /// content: ""; 16 | /// display: block; 17 | /// } 18 | 19 | @mixin clearfix { 20 | &::after { 21 | clear: both; 22 | content: ""; 23 | display: block; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /assets/img/angle-arrow-down-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/angle-arrow-down-primary.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/angle-arrow-up-primary.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/angle-arrow-down-primary-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/angle-arrow-up-primary-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/elements/_embed.scss: -------------------------------------------------------------------------------- 1 | $aspect-height: 9; 2 | $aspect-width: 16; 3 | 4 | @mixin embed-container ($height, $width) { 5 | padding-bottom: percentage($height/$width); 6 | } 7 | 8 | .usa-embed-container { 9 | iframe, 10 | object, 11 | embed { 12 | position: absolute; 13 | top: 0; 14 | left: 0; 15 | width: 100%; 16 | height: 100%; 17 | } 18 | } 19 | 20 | .usa-embed-container { 21 | @include embed-container($aspect-height, $aspect-width); 22 | position: relative; 23 | height: 0; 24 | overflow: hidden; 25 | max-width: 100%; 26 | } 27 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_gradient-positions-parser.scss: -------------------------------------------------------------------------------- 1 | @function _gradient-positions-parser($gradient-type, $gradient-positions) { 2 | @if $gradient-positions 3 | and ($gradient-type == linear) 4 | and (type-of($gradient-positions) != color) { 5 | $gradient-positions: _linear-positions-parser($gradient-positions); 6 | } 7 | @else if $gradient-positions 8 | and ($gradient-type == radial) 9 | and (type-of($gradient-positions) != color) { 10 | $gradient-positions: _radial-positions-parser($gradient-positions); 11 | } 12 | @return $gradient-positions; 13 | } 14 | -------------------------------------------------------------------------------- /assets/img/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_transform.scss: -------------------------------------------------------------------------------- 1 | @mixin transform($property: none) { 2 | // none | 3 | @include prefixer(transform, $property, webkit moz ms o spec); 4 | } 5 | 6 | @mixin transform-origin($axes: 50%) { 7 | // x-axis - left | center | right | length | % 8 | // y-axis - top | center | bottom | length | % 9 | // z-axis - length 10 | @include prefixer(transform-origin, $axes, webkit moz ms o spec); 11 | } 12 | 13 | @mixin transform-style($style: flat) { 14 | @include prefixer(transform-style, $style, webkit moz ms o spec); 15 | } 16 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_clearfix.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides an easy way to include a clearfix for containing floats. 4 | /// 5 | /// @link http://cssmojo.com/latest_new_clearfix_so_far/ 6 | /// 7 | /// @example scss - Usage 8 | /// .element { 9 | /// @include clearfix; 10 | /// } 11 | /// 12 | /// @example css - CSS Output 13 | /// .element::after { 14 | /// clear: both; 15 | /// content: ""; 16 | /// display: table; 17 | /// } 18 | 19 | @mixin clearfix { 20 | &::after { 21 | clear: both; 22 | content: ""; 23 | display: table; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_shade.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Mixes a color with black. 4 | /// 5 | /// @param {Color} $color 6 | /// 7 | /// @param {Number (Percentage)} $percent 8 | /// The amount of black to be mixed in. 9 | /// 10 | /// @example scss - Usage 11 | /// .element { 12 | /// background-color: shade(#ffbb52, 60%); 13 | /// } 14 | /// 15 | /// @example css - CSS Output 16 | /// .element { 17 | /// background-color: #664a20; 18 | /// } 19 | /// 20 | /// @return {Color} 21 | 22 | @function shade($color, $percent) { 23 | @return mix(#000, $color, $percent); 24 | } 25 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_tint.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Mixes a color with white. 4 | /// 5 | /// @param {Color} $color 6 | /// 7 | /// @param {Number (Percentage)} $percent 8 | /// The amount of white to be mixed in. 9 | /// 10 | /// @example scss - Usage 11 | /// .element { 12 | /// background-color: tint(#6ecaa6, 40%); 13 | /// } 14 | /// 15 | /// @example css - CSS Output 16 | /// .element { 17 | /// background-color: #a8dfc9; 18 | /// } 19 | /// 20 | /// @return {Color} 21 | 22 | @function tint($color, $percent) { 23 | @return mix(#fff, $color, $percent); 24 | } 25 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_font-face.scss: -------------------------------------------------------------------------------- 1 | @mixin font-face( 2 | $font-family, 3 | $file-path, 4 | $weight: normal, 5 | $style: normal, 6 | $asset-pipeline: $asset-pipeline, 7 | $file-formats: eot woff2 woff ttf svg) { 8 | 9 | $font-url-prefix: font-url-prefixer($asset-pipeline); 10 | 11 | @font-face { 12 | font-family: $font-family; 13 | font-style: $style; 14 | font-weight: $weight; 15 | 16 | src: font-source-declaration( 17 | $font-family, 18 | $file-path, 19 | $asset-pipeline, 20 | $file-formats, 21 | $font-url-prefix 22 | ); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_radial-positions-parser.scss: -------------------------------------------------------------------------------- 1 | @function _radial-positions-parser($gradient-pos) { 2 | $shape-size: nth($gradient-pos, 1); 3 | $pos: nth($gradient-pos, 2); 4 | $shape-size-spec: _shape-size-stripper($shape-size); 5 | 6 | $pre-spec: unquote(if($pos, "#{$pos}, ", null)) 7 | unquote(if($shape-size, "#{$shape-size},", null)); 8 | $pos-spec: if($pos, "at #{$pos}", null); 9 | 10 | $spec: "#{$shape-size-spec} #{$pos-spec}"; 11 | 12 | // Add comma 13 | @if ($spec != " ") { 14 | $spec: "#{$spec},"; 15 | } 16 | 17 | @return $pre-spec $spec; 18 | } 19 | -------------------------------------------------------------------------------- /assets/scss/lib/_neat.scss: -------------------------------------------------------------------------------- 1 | // Neat 1.8.0 2 | // http://neat.bourbon.io 3 | // Copyright 2012-2015 thoughtbot, inc. 4 | // MIT License 5 | 6 | // Helpers 7 | @import "neat-helpers"; 8 | 9 | // Grid 10 | @import "grid/private"; 11 | @import "grid/box-sizing"; 12 | @import "grid/omega"; 13 | @import "grid/outer-container"; 14 | @import "grid/span-columns"; 15 | @import "grid/row"; 16 | @import "grid/shift"; 17 | @import "grid/pad"; 18 | @import "grid/fill-parent"; 19 | @import "grid/media"; 20 | @import "grid/to-deprecate"; 21 | @import "grid/visual-grid"; 22 | @import "grid/display-context"; 23 | @import "grid/direction-context"; 24 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_contains.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks if a list contains a value(s). 4 | /// 5 | /// @access private 6 | /// 7 | /// @param {List} $list 8 | /// The list to check against. 9 | /// 10 | /// @param {List} $values 11 | /// A single value or list of values to check for. 12 | /// 13 | /// @example scss - Usage 14 | /// contains($list, $value) 15 | /// 16 | /// @return {Bool} 17 | 18 | @function contains($list, $values...) { 19 | @each $value in $values { 20 | @if type-of(index($list, $value)) != "number" { 21 | @return false; 22 | } 23 | } 24 | 25 | @return true; 26 | } 27 | -------------------------------------------------------------------------------- /assets/html/recoverKey.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

API Key Recovery

4 |

Please contact us for help recovering an old API keyInfo I Icon

5 |
6 |
-------------------------------------------------------------------------------- /assets/img/icon-dot-gov.svg: -------------------------------------------------------------------------------- 1 | dot gov icon 2 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_is-light.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Programatically determines whether a color is light or dark. 4 | /// 5 | /// @link http://robots.thoughtbot.com/closer-look-color-lightness 6 | /// 7 | /// @param {Color (Hex)} $color 8 | /// 9 | /// @example scss - Usage 10 | /// is-light($color) 11 | /// 12 | /// @return {Bool} 13 | 14 | @function is-light($hex-color) { 15 | $-local-red: red(rgba($hex-color, 1)); 16 | $-local-green: green(rgba($hex-color, 1)); 17 | $-local-blue: blue(rgba($hex-color, 1)); 18 | $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255; 19 | 20 | @return $-local-lightness > 0.6; 21 | } 22 | -------------------------------------------------------------------------------- /assets/scss/components/_sidenav.scss: -------------------------------------------------------------------------------- 1 | 2 | .usa-sidenav-list { 3 | @include usa-sidenav-list; 4 | border-bottom: 1px solid; 5 | border-top: 1px solid; 6 | 7 | @include media($large-screen) { 8 | border-bottom: none; 9 | border-top: none; 10 | } 11 | 12 | .usa-grid & { 13 | @include margin(null (-$site-margins-mobile) null (-$site-margins-mobile)); 14 | 15 | @include media($medium-screen) { 16 | @include margin(null 0); 17 | } 18 | } 19 | } 20 | 21 | .usa-sidenav-sub_list { 22 | @include usa-sidenav-sublist; 23 | } 24 | 25 | .usa-layout-docs-sidenav { 26 | padding-top: 2.4rem; 27 | 28 | @include media($large-screen) { 29 | padding-top: 0; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /assets/scss/components/_section.scss: -------------------------------------------------------------------------------- 1 | .usa-section { 2 | @include padding($site-margins null); 3 | 4 | @include media($medium-screen) { 5 | @include padding(6rem null); 6 | } 7 | } 8 | 9 | .usa-section-light { 10 | background-color: $color-gray-lightest; 11 | } 12 | 13 | .usa-section-dark { 14 | @include font-smoothing; 15 | background-color: $color-base; 16 | color: $color-white; 17 | 18 | h1, 19 | h2, 20 | h3, 21 | h4, 22 | h5, 23 | h6 { 24 | color: $color-primary-alt-light; 25 | } 26 | 27 | p { 28 | color: $color-white; 29 | } 30 | 31 | a { 32 | color: $color-gray-lighter; 33 | 34 | &:hover { 35 | color: $color-white; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_margin.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `margin` on specific sides of a box. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Arglist} $vals 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include margin(null 10px 3em 20vh); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// margin-bottom: 3em; 16 | /// margin-left: 20vh; 17 | /// margin-right: 10px; 18 | /// } 19 | /// 20 | /// @require {mixin} directional-property 21 | /// 22 | /// @output `margin` 23 | 24 | @mixin margin($vals...) { 25 | @include directional-property(margin, false, $vals...); 26 | } 27 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_text-decoration.scss: -------------------------------------------------------------------------------- 1 | @mixin text-decoration($value) { 2 | // || || 3 | @include prefixer(text-decoration, $value, moz); 4 | } 5 | 6 | @mixin text-decoration-line($line: none) { 7 | // none || underline || overline || line-through 8 | @include prefixer(text-decoration-line, $line, moz); 9 | } 10 | 11 | @mixin text-decoration-style($style: solid) { 12 | // solid || double || dotted || dashed || wavy 13 | @include prefixer(text-decoration-style, $style, moz webkit); 14 | } 15 | 16 | @mixin text-decoration-color($color: currentColor) { 17 | // currentColor || 18 | @include prefixer(text-decoration-color, $color, moz); 19 | } 20 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_border-width.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `border-width` on specific sides of a box. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Arglist} $vals 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include border-width(1em null 20px); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// border-bottom-width: 20px; 16 | /// border-top-width: 1em; 17 | /// } 18 | /// 19 | /// @require {mixin} directional-property 20 | /// 21 | /// @output `border-width` 22 | 23 | @mixin border-width($vals...) { 24 | @include directional-property(border, width, $vals...); 25 | } 26 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_padding.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `padding` on specific sides of a box. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Arglist} $vals 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include padding(12vh null 10px 5%); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// padding-bottom: 10px; 16 | /// padding-left: 5%; 17 | /// padding-top: 12vh; 18 | /// } 19 | /// 20 | /// @require {mixin} directional-property 21 | /// 22 | /// @output `padding` 23 | 24 | @mixin padding($vals...) { 25 | @include directional-property(padding, false, $vals...); 26 | } 27 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_border-style.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `border-style` on specific sides of a box. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Arglist} $vals 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include border-style(dashed null solid); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// border-bottom-style: solid; 16 | /// border-top-style: dashed; 17 | /// } 18 | /// 19 | /// @require {mixin} directional-property 20 | /// 21 | /// @output `border-style` 22 | 23 | @mixin border-style($vals...) { 24 | @include directional-property(border, style, $vals...); 25 | } 26 | -------------------------------------------------------------------------------- /assets/img/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_font-stacks.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Georgia font stack. 4 | /// 5 | /// @type List 6 | 7 | $georgia: "Georgia", "Cambria", "Times New Roman", "Times", serif; 8 | 9 | /// Helvetica font stack. 10 | /// 11 | /// @type List 12 | 13 | $helvetica: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; 14 | 15 | /// Lucida Grande font stack. 16 | /// 17 | /// @type List 18 | 19 | $lucida-grande: "Lucida Grande", "Tahoma", "Verdana", "Arial", sans-serif; 20 | 21 | /// Monospace font stack. 22 | /// 23 | /// @type List 24 | 25 | $monospace: "Bitstream Vera Sans Mono", "Consolas", "Courier", monospace; 26 | 27 | /// Verdana font stack. 28 | /// 29 | /// @type List 30 | 31 | $verdana: "Verdana", "Geneva", sans-serif; 32 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_word-wrap.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides an easy way to change the `word-wrap` property. 4 | /// 5 | /// @param {String} $wrap [break-word] 6 | /// Value for the `word-break` property. 7 | /// 8 | /// @example scss - Usage 9 | /// .wrapper { 10 | /// @include word-wrap(break-word); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .wrapper { 15 | /// overflow-wrap: break-word; 16 | /// word-break: break-all; 17 | /// word-wrap: break-word; 18 | /// } 19 | 20 | @mixin word-wrap($wrap: break-word) { 21 | overflow-wrap: $wrap; 22 | word-wrap: $wrap; 23 | 24 | @if $wrap == break-word { 25 | word-break: break-all; 26 | } @else { 27 | word-break: $wrap; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /assets/scss/components/_layout.scss: -------------------------------------------------------------------------------- 1 | // Flexbox positioning to move sidenav below main content on small screens 2 | .usa-layout-docs { 3 | display: flex; 4 | flex-direction: column; 5 | 6 | @include media($large-screen) { 7 | display: inherit; 8 | } 9 | 10 | .usa-grid { 11 | > :first-child:not(.usa-width-*) { 12 | margin-top: 0; 13 | } 14 | 15 | > :last-child:not(.usa-width-*) { 16 | margin-bottom: 0; 17 | } 18 | } 19 | } 20 | 21 | .usa-layout-docs-sidenav { 22 | order: 2; 23 | } 24 | 25 | .usa-layout-docs-main_content { 26 | margin-bottom: $site-margins; 27 | order: 1; 28 | 29 | @include media($large-screen) { 30 | margin-bottom: 0; 31 | } 32 | 33 | > :first-child { 34 | margin-top: 0; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /assets/html/overview.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

5 | { NASA APIs } 6 |

7 | 8 |

Welcome to the NASA API portal. The objective of this site is to make NASA data, 9 | including imagery, eminently accessible to application developers. 10 | This catalog focuses on broadly useful and user friendly APIs and does not hold every NASA API.

11 | 12 | 13 | 14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /assets/img/plus-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/core/_base.scss: -------------------------------------------------------------------------------- 1 | // Apply a natural box layout model to all elements, but allowing components to 2 | // change 3 | 4 | html { 5 | box-sizing: border-box; 6 | } 7 | 8 | *, 9 | *::before, 10 | *::after { 11 | box-sizing: inherit; 12 | } 13 | 14 | body { 15 | background-color: $color-white; 16 | color: $color-base; 17 | overflow-x: hidden; 18 | } 19 | 20 | // Hack for clearfixes 21 | .lt-ie9 { 22 | * { 23 | filter: none !important; /* stylelint-disable-line declaration-no-important */ 24 | } 25 | } 26 | 27 | // for IE < 11, see: 28 | // 29 | [hidden] { 30 | display: none !important; /* stylelint-disable-line declaration-no-important */ 31 | } 32 | 33 | *:focus, 34 | .usa-focus { 35 | @include focus; 36 | } 37 | -------------------------------------------------------------------------------- /assets/scss/components/_graphic-list.scss: -------------------------------------------------------------------------------- 1 | // A collection of media block objects 2 | 3 | .usa-graphic_list { 4 | .usa-graphic_list-row { 5 | .usa-media_block { 6 | margin-bottom: $site-margins; 7 | 8 | @include media($medium-screen) { 9 | margin-bottom: $site-margins * 2; 10 | } 11 | } 12 | 13 | &:last-child { 14 | .usa-media_block { 15 | @include media($medium-screen) { 16 | margin-bottom: 0; 17 | } 18 | 19 | &:last-child { 20 | margin-bottom: 0; 21 | } 22 | } 23 | } 24 | } 25 | 26 | .usa-media_block-img { 27 | margin-right: $site-margins; 28 | } 29 | 30 | .usa-media_block-body { 31 | > :first-child { 32 | margin-top: 0; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_border-color.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `border-color` on specific sides of a box. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Arglist} $vals 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include border-color(#a60b55 #76cd9c null #e8ae1a); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// border-left-color: #e8ae1a; 16 | /// border-right-color: #76cd9c; 17 | /// border-top-color: #a60b55; 18 | /// } 19 | /// 20 | /// @require {mixin} directional-property 21 | /// 22 | /// @output `border-color` 23 | 24 | @mixin border-color($vals...) { 25 | @include directional-property(border, color, $vals...); 26 | } 27 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_pad.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Adds padding to the element. 4 | /// 5 | /// @param {List} $padding [flex-gutter()] 6 | /// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include pad(30px -20px 10px default); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// padding: 30px -20px 10px 2.35765%; 16 | /// } 17 | 18 | @mixin pad($padding: flex-gutter()) { 19 | $padding-list: null; 20 | @each $value in $padding { 21 | $value: if($value == 'default', flex-gutter(), $value); 22 | $padding-list: join($padding-list, $value); 23 | } 24 | padding: $padding-list; 25 | } 26 | -------------------------------------------------------------------------------- /assets/scss/components/_hero.scss: -------------------------------------------------------------------------------- 1 | // Hero feature 2 | // ========================== 3 | 4 | .usa-hero { 5 | @include padding($site-margins null); 6 | background-image: url('#{$image-path}/hero.png'); 7 | background-position: center; 8 | background-size: cover; 9 | 10 | .usa-button { 11 | color: $color-white; 12 | } 13 | } 14 | 15 | .usa-section-dark { 16 | .usa-hero-link { 17 | color: $color-primary-alt-light; 18 | } 19 | } 20 | 21 | .usa-hero-callout { 22 | background-color: $color-base; 23 | padding: 3rem; 24 | 25 | @include media($small-screen) { 26 | max-width: 30rem; 27 | } 28 | 29 | > *:first-child { 30 | @include margin(0 null $spacing-medium null); 31 | } 32 | } 33 | 34 | .usa-hero-callout-alt { 35 | color: $color-white; 36 | display: block; 37 | } 38 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_display-context.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Changes the display property used by other mixins called in the code block argument. 4 | /// 5 | /// @param {String} $display [block] 6 | /// Display value to be used within the block. Can be `table` or `block`. 7 | /// 8 | /// @example scss 9 | /// @include display-context(table) { 10 | /// .display-table { 11 | /// @include span-columns(6); 12 | /// } 13 | /// } 14 | /// 15 | /// @example css 16 | /// .display-table { 17 | /// display: table-cell; 18 | /// ... 19 | /// } 20 | 21 | @mixin display-context($display: block) { 22 | $scope-display: $container-display-table; 23 | $container-display-table: $display == table !global; 24 | 25 | @content; 26 | 27 | $container-display-table: $scope-display !global; 28 | } 29 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_ellipsis.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Truncates text and adds an ellipsis to represent overflow. 4 | /// 5 | /// @param {Number} $width [100%] 6 | /// Max-width for the string to respect before being truncated 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include ellipsis; 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// display: inline-block; 16 | /// max-width: 100%; 17 | /// overflow: hidden; 18 | /// text-overflow: ellipsis; 19 | /// white-space: nowrap; 20 | /// word-wrap: normal; 21 | /// } 22 | 23 | @mixin ellipsis($width: 100%) { 24 | display: inline-block; 25 | max-width: $width; 26 | overflow: hidden; 27 | text-overflow: ellipsis; 28 | white-space: nowrap; 29 | word-wrap: normal; 30 | } 31 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_transition-property-name.scss: -------------------------------------------------------------------------------- 1 | // Return vendor-prefixed property names if appropriate 2 | // Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background 3 | //************************************************************************// 4 | @function transition-property-names($props, $vendor: false) { 5 | $new-props: (); 6 | 7 | @each $prop in $props { 8 | $new-props: append($new-props, transition-property-name($prop, $vendor), comma); 9 | } 10 | 11 | @return $new-props; 12 | } 13 | 14 | @function transition-property-name($prop, $vendor: false) { 15 | // put other properties that need to be prefixed here aswell 16 | @if $vendor and $prop == transform { 17 | @return unquote('-'+$vendor+'-'+$prop); 18 | } 19 | @else { 20 | @return $prop; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Run Release Tracker 2 | 3 | on: 4 | push: 5 | branches: 6 | - gh-pages 7 | 8 | jobs: 9 | run-script: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - name: Checkout Repository 14 | uses: actions/checkout@v4.1.1 15 | 16 | - name: Get Commit Message 17 | id: commit-message 18 | run: echo "message=$(git log -1 --pretty=%B)" >> $GITHUB_OUTPUT 19 | 20 | - name: Run Bash Script 21 | env: 22 | COMMIT_MESSAGE: ${{ steps.commit-message.outputs.message }} 23 | REPO_NAME: ${{ github.repository }} 24 | GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} 25 | run: | 26 | echo "Current commit message: $COMMIT_MESSAGE" 27 | echo "Repo Name: $REPO_NAME" 28 | chmod +x ./release-tracker-github.sh 29 | ./release-tracker-github.sh 30 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_unpack.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Converts shorthand to the 4-value syntax. 4 | /// 5 | /// @param {List} $shorthand 6 | /// 7 | /// @example scss - Usage 8 | /// .element { 9 | /// margin: unpack(1em 2em); 10 | /// } 11 | /// 12 | /// @example css - CSS Output 13 | /// .element { 14 | /// margin: 1em 2em 1em 2em; 15 | /// } 16 | 17 | @function unpack($shorthand) { 18 | @if length($shorthand) == 1 { 19 | @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1); 20 | } @else if length($shorthand) == 2 { 21 | @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2); 22 | } @else if length($shorthand) == 3 { 23 | @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2); 24 | } @else { 25 | @return $shorthand; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_hide-text.scss: -------------------------------------------------------------------------------- 1 | /// Hides the text in an element, commonly used to show an image. Some elements will need block-level styles applied. 2 | /// 3 | /// @link http://zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement 4 | /// 5 | /// @example scss - Usage 6 | /// .element { 7 | /// @include hide-text; 8 | /// } 9 | /// 10 | /// @example css - CSS Output 11 | /// .element { 12 | /// overflow: hidden; 13 | /// text-indent: 101%; 14 | /// white-space: nowrap; 15 | /// } 16 | /// 17 | /// @todo Remove height argument in v5.0.0 18 | 19 | @mixin hide-text($height: null) { 20 | overflow: hidden; 21 | text-indent: 101%; 22 | white-space: nowrap; 23 | 24 | @if $height { 25 | @warn "The `hide-text` mixin has changed and no longer requires a height. The height argument will no longer be accepted in v5.0.0"; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_linear-angle-parser.scss: -------------------------------------------------------------------------------- 1 | // Private function for linear-gradient-parser 2 | @function _linear-angle-parser($image, $first-val, $prefix, $suffix) { 3 | $offset: null; 4 | $unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val)); 5 | $unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val)); 6 | 7 | @if ($unit-long == "grad") or 8 | ($unit-long == "turn") { 9 | $offset: if($unit-long == "grad", -100grad * 3, -0.75turn); 10 | } 11 | 12 | @else if ($unit-short == "deg") or 13 | ($unit-short == "rad") { 14 | $offset: if($unit-short == "deg", -90 * 3, 1.6rad); 15 | } 16 | 17 | @if $offset { 18 | $num: _str-to-num($first-val); 19 | 20 | @return ( 21 | webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix, 22 | spec-image: $image 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /assets/scss/lib/settings/_visual-grid.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on the browser's rendering engine and pixel rounding algorithm. Set with the `!global` flag. 4 | /// 5 | /// @type Bool 6 | 7 | $visual-grid: false !default; 8 | 9 | /// Sets the visual grid color. Set with `!global` flag. 10 | /// 11 | /// @type Color 12 | 13 | $visual-grid-color: #eee !default; 14 | 15 | /// Sets the `z-index` property of the visual grid. Can be `back` (behind content) or `front` (in front of content). Set with `!global` flag. 16 | /// 17 | /// @type String 18 | 19 | $visual-grid-index: back !default; 20 | 21 | /// Sets the opacity property of the visual grid. Set with `!global` flag. 22 | /// 23 | /// @type Number (unitless) 24 | 25 | $visual-grid-opacity: 0.4 !default; 26 | 27 | $visual-grid-breakpoints: () !default; 28 | -------------------------------------------------------------------------------- /assets/img/arrow-both.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_convert-units.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Helper function for str-to-num fn. 3 | // Source: http://sassmeister.com/gist/9647408 4 | //************************************************************************// 5 | @function _convert-units($number, $unit) { 6 | $strings: "px", "cm", "mm", "%", "ch", "pica", "in", "em", "rem", "pt", "pc", "ex", "vw", "vh", "vmin", "vmax", "deg", "rad", "grad", "turn"; 7 | $units: 1px, 1cm, 1mm, 1%, 1ch, 1pica, 1in, 1em, 1rem, 1pt, 1pc, 1ex, 1vw, 1vh, 1vmin, 1vmax, 1deg, 1rad, 1grad, 1turn; 8 | $index: index($strings, $unit); 9 | 10 | @if not $index { 11 | @warn "Unknown unit `#{$unit}`."; 12 | @return false; 13 | } 14 | 15 | @if type-of($number) != "number" { 16 | @warn "`#{$number} is not a number`"; 17 | @return false; 18 | } 19 | 20 | @return $number * nth($units, $index); 21 | } 22 | -------------------------------------------------------------------------------- /assets/api-list.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{api.name}} 6 | 7 | 8 | {{api.summary}} 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | -------------------------------------------------------------------------------- /assets/scss/elements/_table.scss: -------------------------------------------------------------------------------- 1 | table { 2 | border-spacing: 0; 3 | margin: 2em 0; 4 | } 5 | 6 | thead { 7 | th { 8 | font-weight: $font-bold; 9 | } 10 | 11 | th, 12 | td { 13 | background-color: $color-gray-lightest; 14 | } 15 | } 16 | 17 | th { 18 | text-align: left; 19 | } 20 | 21 | th, 22 | td { 23 | background-color: $color-white; 24 | border: 1px solid $color-gray; 25 | font-weight: $font-normal; 26 | padding: 1rem 1.5rem; 27 | } 28 | 29 | .usa-table-borderless { 30 | thead { 31 | th { 32 | background-color: transparent; 33 | border-top: 0; 34 | } 35 | } 36 | 37 | th, 38 | td { 39 | border-left: 0; 40 | border-right: 0; 41 | } 42 | 43 | th { 44 | &:first-child { 45 | padding-left: 0; 46 | } 47 | } 48 | } 49 | 50 | caption { 51 | @include h5; 52 | font-family: $font-serif; 53 | margin-bottom: 1.2rem; 54 | text-align: left; 55 | } 56 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_retina-image.scss: -------------------------------------------------------------------------------- 1 | @mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: $asset-pipeline) { 2 | @if $asset-pipeline { 3 | background-image: image-url("#{$filename}.#{$extension}"); 4 | } @else { 5 | background-image: url("#{$filename}.#{$extension}"); 6 | } 7 | 8 | @include hidpi { 9 | @if $asset-pipeline { 10 | @if $retina-filename { 11 | background-image: image-url("#{$retina-filename}.#{$extension}"); 12 | } @else { 13 | background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}"); 14 | } 15 | } @else { 16 | @if $retina-filename { 17 | background-image: url("#{$retina-filename}.#{$extension}"); 18 | } @else { 19 | background-image: url("#{$filename}#{$retina-suffix}.#{$extension}"); 20 | } 21 | } 22 | 23 | background-size: $background-size; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_render-gradients.scss: -------------------------------------------------------------------------------- 1 | // User for linear and radial gradients within background-image or border-image properties 2 | 3 | @function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) { 4 | $pre-spec: null; 5 | $spec: null; 6 | $vendor-gradients: null; 7 | @if $gradient-type == linear { 8 | @if $gradient-positions { 9 | $pre-spec: nth($gradient-positions, 1); 10 | $spec: nth($gradient-positions, 2); 11 | } 12 | } 13 | @else if $gradient-type == radial { 14 | $pre-spec: nth($gradient-positions, 1); 15 | $spec: nth($gradient-positions, 2); 16 | } 17 | 18 | @if $vendor { 19 | $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients); 20 | } 21 | @else if $vendor == false { 22 | $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})"; 23 | $vendor-gradients: unquote($vendor-gradients); 24 | } 25 | @return $vendor-gradients; 26 | } 27 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_direction-context.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Changes the direction property used by other mixins called in the code block argument. 4 | /// 5 | /// @param {String} $direction [left-to-right] 6 | /// Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. 7 | /// 8 | /// @example scss - Usage 9 | /// @include direction-context(right-to-left) { 10 | /// .right-to-left-block { 11 | /// @include span-columns(6); 12 | /// } 13 | /// } 14 | /// 15 | /// @example css - CSS Output 16 | /// .right-to-left-block { 17 | /// float: right; 18 | /// ... 19 | /// } 20 | 21 | @mixin direction-context($direction: left-to-right) { 22 | $scope-direction: $layout-direction; 23 | 24 | @if to-lower-case($direction) == "left-to-right" { 25 | $layout-direction: LTR !global; 26 | } @else if to-lower-case($direction) == "right-to-left" { 27 | $layout-direction: RTL !global; 28 | } 29 | 30 | @content; 31 | 32 | $layout-direction: $scope-direction !global; 33 | } 34 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_selection.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Outputs the spec and prefixed versions of the `::selection` pseudo-element. 4 | /// 5 | /// @param {Bool} $current-selector [false] 6 | /// If set to `true`, it takes the current element into consideration. 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include selection(true) { 11 | /// background-color: #ffbb52; 12 | /// } 13 | /// } 14 | /// 15 | /// @example css - CSS Output 16 | /// .element::-moz-selection { 17 | /// background-color: #ffbb52; 18 | /// } 19 | /// 20 | /// .element::selection { 21 | /// background-color: #ffbb52; 22 | /// } 23 | 24 | @mixin selection($current-selector: false) { 25 | @if $current-selector { 26 | &::-moz-selection { 27 | @content; 28 | } 29 | 30 | &::selection { 31 | @content; 32 | } 33 | } @else { 34 | ::-moz-selection { 35 | @content; 36 | } 37 | 38 | ::selection { 39 | @content; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /assets/img/search.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_linear-side-corner-parser.scss: -------------------------------------------------------------------------------- 1 | // Private function for linear-gradient-parser 2 | @function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) { 3 | $val-1: str-slice($first-val, 1, $has-multiple-vals - 1); 4 | $val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val)); 5 | $val-3: null; 6 | $has-val-3: str-index($val-2, " "); 7 | 8 | @if $has-val-3 { 9 | $val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2)); 10 | $val-2: str-slice($val-2, 1, $has-val-3 - 1); 11 | } 12 | 13 | $pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3); 14 | $pos: unquote($pos + ""); 15 | 16 | // Use old spec for webkit 17 | @if $val-1 == "to" { 18 | @return ( 19 | webkit-image: -webkit- + $prefix + $pos + $suffix, 20 | spec-image: $image 21 | ); 22 | } 23 | 24 | // Bring the code up to spec 25 | @else { 26 | @return ( 27 | webkit-image: -webkit- + $image, 28 | spec-image: $prefix + "to " + $pos + $suffix 29 | ); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /assets/img/search-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_outer-container.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Makes an element a outer container by centering it in the viewport, clearing its floats, and setting its `max-width`. 4 | /// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. 5 | /// 6 | /// @param {Number [unit]} $local-max-width [$max-width] 7 | /// Max width to be applied to the element. Can be a percentage or a measure. 8 | /// 9 | /// @example scss - Usage 10 | /// .element { 11 | /// @include outer-container(100%); 12 | /// } 13 | /// 14 | /// @example css - CSS Output 15 | /// .element { 16 | /// max-width: 100%; 17 | /// margin-left: auto; 18 | /// margin-right: auto; 19 | /// } 20 | /// 21 | /// .element::after { 22 | /// clear: both; 23 | /// content: ""; 24 | /// display: table; 25 | /// } 26 | 27 | @mixin outer-container($local-max-width: $max-width) { 28 | @include clearfix; 29 | max-width: $local-max-width; 30 | margin: { 31 | left: auto; 32 | right: auto; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /assets/footer/img/svg/twitter16.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/social-icons/svg/twitter16.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribute to API.nasa.gov! 2 | Thank you for your consideration of contributing to API.nasa.gov! 3 | By following these guidelines, it helps move improvements to the site at a faster 4 | pace as well as it keeps the repository tidy and easy to read. 5 | 6 | ## Issue Submission: 7 | If you find a problem with api.nasa.gov's functionality or find something that is not clear in our README, feel 8 | free to submit an issue about it! 9 | 10 | ### NOTE: 11 | API.nasa.gov does not host most of the API, as we are a pass-through service. If you are having trouble with 12 | an API not working, please contact the API Owner. 13 | 14 | ## Pull Request: 15 | If you have a revision for API.nasa.gov, small or large, please consider submitting a pull request! 16 | 17 | ## What to include: 18 | ### When submitting for either an issue or a pull request, please include the following: 19 | * your browser, 20 | * your browser version, 21 | * (if possible) steps to recreate the error 22 | These will help us debug and narrow down where to test the error at. 23 | ### Be sure to check that a similar issue has not been submitted previously! 24 | -------------------------------------------------------------------------------- /assets/README.md: -------------------------------------------------------------------------------- 1 | # NASA Web Design System 2 | [![CircleCI Build Status](https://circleci.com/gh/nasa/nasawds/tree/develop.svg?style=shield)](https://circleci.com/gh/nasa/nasawds/tree/develop) [![Test Coverage](https://codeclimate.com/github/bruffridge/nasawds/badges/coverage.svg)](https://codeclimate.com/github/bruffridge/nasawds/coverage) 3 | 4 | The [NASA Web Design System](https://nasa.github.io/nasawds-site) includes a library of open source UI components and a visual style guide for NASA websites. It is a fork of the [U.S. Web Design System](https://github.com/uswds/uswds). 5 | 6 | This repository is for the Design System itself. NASA maintains [another repository for the documentation and website](https://github.com/nasa/nasawds-site). To see the Design System and documentation on the web, visit [https://nasa.github.io/nasawds-site](https://nasa.github.io/nasawds-site). 7 | 8 | ## Contributing to the code base 9 | 10 | For complete instructions on how to contribute code, please read [CONTRIBUTING.md](CONTRIBUTING.md). These instructions also include guidance on how to set up your own copy of the Design System style guide website for development. 11 | -------------------------------------------------------------------------------- /assets/img/alerts/success.svg: -------------------------------------------------------------------------------- 1 | 3 | 12 | 13 | -------------------------------------------------------------------------------- /assets/scss/uswds.scss: -------------------------------------------------------------------------------- 1 | // Vendor -------------- // 2 | @import 'core/variables-vendor'; 3 | @import 'lib/bourbon'; 4 | @import 'lib/neat'; 5 | @import 'lib/normalize'; 6 | 7 | // Core -------------- // 8 | @import 'core/variables'; 9 | @import 'core/fonts'; 10 | @import 'core/grid'; 11 | @import 'core/utilities'; 12 | @import 'core/base'; 13 | 14 | // Elements -------------- // 15 | // Styles basic HTML elements 16 | @import 'elements/buttons'; 17 | @import 'elements/embed'; 18 | @import 'elements/figure'; 19 | @import 'elements/inputs'; 20 | @import 'elements/labels'; 21 | @import 'elements/list'; 22 | @import 'elements/table'; 23 | @import 'elements/typography'; 24 | 25 | // Components -------------- // 26 | @import 'components/accordions'; 27 | @import 'components/alerts'; 28 | @import 'components/banner'; 29 | @import 'components/footer'; 30 | @import 'components/forms'; 31 | @import 'components/graphic-list'; 32 | @import 'components/header'; 33 | @import 'components/hero'; 34 | @import 'components/layout'; 35 | @import 'components/media-block'; 36 | @import 'components/navigation'; 37 | @import 'components/search'; 38 | @import 'components/section'; 39 | @import 'components/sidenav'; 40 | @import 'components/skipnav'; 41 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_font-source-declaration.scss: -------------------------------------------------------------------------------- 1 | // Used for creating the source string for fonts using @font-face 2 | // Reference: http://goo.gl/Ru1bKP 3 | 4 | @function font-url-prefixer($asset-pipeline) { 5 | @if $asset-pipeline == true { 6 | @return font-url; 7 | } @else { 8 | @return url; 9 | } 10 | } 11 | 12 | @function font-source-declaration( 13 | $font-family, 14 | $file-path, 15 | $asset-pipeline, 16 | $file-formats, 17 | $font-url) { 18 | 19 | $src: (); 20 | 21 | $formats-map: ( 22 | eot: "#{$file-path}.eot?#iefix" format("embedded-opentype"), 23 | woff2: "#{$file-path}.woff2" format("woff2"), 24 | woff: "#{$file-path}.woff" format("woff"), 25 | ttf: "#{$file-path}.ttf" format("truetype"), 26 | svg: "#{$file-path}.svg##{$font-family}" format("svg") 27 | ); 28 | 29 | @each $key, $values in $formats-map { 30 | @if contains($file-formats, $key) { 31 | $file-path: nth($values, 1); 32 | $font-format: nth($values, 2); 33 | 34 | @if $asset-pipeline == true { 35 | $src: append($src, font-url($file-path) $font-format, comma); 36 | } @else { 37 | $src: append($src, url($file-path) $font-format, comma); 38 | } 39 | } 40 | } 41 | 42 | @return $src; 43 | } 44 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_visual-grid.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | @mixin grid-column-gradient($values...) { 4 | background-image: -webkit-linear-gradient(left, $values); 5 | background-image: -moz-linear-gradient(left, $values); 6 | background-image: -ms-linear-gradient(left, $values); 7 | background-image: -o-linear-gradient(left, $values); 8 | background-image: unquote("linear-gradient(to left, #{$values})"); 9 | } 10 | 11 | @if $visual-grid == true or $visual-grid == yes { 12 | body:before { 13 | @include grid-column-gradient(gradient-stops($grid-columns)); 14 | content: ""; 15 | display: inline-block; 16 | height: 100%; 17 | left: 0; 18 | margin: 0 auto; 19 | max-width: $max-width; 20 | opacity: $visual-grid-opacity; 21 | pointer-events: none; 22 | position: fixed; 23 | right: 0; 24 | width: 100%; 25 | 26 | @if $visual-grid-index == back { 27 | z-index: -1; 28 | } 29 | 30 | @else if $visual-grid-index == front { 31 | z-index: 9999; 32 | } 33 | 34 | @each $breakpoint in $visual-grid-breakpoints { 35 | @if $breakpoint { 36 | @include media($breakpoint) { 37 | @include grid-column-gradient(gradient-stops($grid-columns)); 38 | } 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_private.scss: -------------------------------------------------------------------------------- 1 | $parent-columns: $grid-columns !default; 2 | $fg-column: $column; 3 | $fg-gutter: $gutter; 4 | $fg-max-columns: $grid-columns; 5 | $container-display-table: false !default; 6 | $layout-direction: LTR !default; 7 | 8 | @function flex-grid($columns, $container-columns: $fg-max-columns) { 9 | $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; 10 | $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; 11 | @return percentage($width / $container-width); 12 | } 13 | 14 | @function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { 15 | $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; 16 | @return percentage($gutter / $container-width); 17 | } 18 | 19 | @function grid-width($n) { 20 | @return $n * $gw-column + ($n - 1) * $gw-gutter; 21 | } 22 | 23 | @function get-parent-columns($columns) { 24 | @if $columns != $grid-columns { 25 | $parent-columns: $columns !global; 26 | } @else { 27 | $parent-columns: $grid-columns !global; 28 | } 29 | 30 | @return $parent-columns; 31 | } 32 | 33 | @function is-display-table($container-is-display-table, $display) { 34 | @return $container-is-display-table == true or $display == table; 35 | } 36 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_linear-gradient-parser.scss: -------------------------------------------------------------------------------- 1 | @function _linear-gradient-parser($image) { 2 | $image: unquote($image); 3 | $gradients: (); 4 | $start: str-index($image, "("); 5 | $end: str-index($image, ","); 6 | $first-val: str-slice($image, $start + 1, $end - 1); 7 | 8 | $prefix: str-slice($image, 1, $start); 9 | $suffix: str-slice($image, $end, str-length($image)); 10 | 11 | $has-multiple-vals: str-index($first-val, " "); 12 | $has-single-position: unquote(_position-flipper($first-val) + ""); 13 | $has-angle: is-number(str-slice($first-val, 1, 1)); 14 | 15 | @if $has-multiple-vals { 16 | $gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals); 17 | } 18 | 19 | @else if $has-single-position != "" { 20 | $pos: unquote($has-single-position + ""); 21 | 22 | $gradients: ( 23 | webkit-image: -webkit- + $image, 24 | spec-image: $prefix + "to " + $pos + $suffix 25 | ); 26 | } 27 | 28 | @else if $has-angle { 29 | // Rotate degree for webkit 30 | $gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix); 31 | } 32 | 33 | @else { 34 | $gradients: ( 35 | webkit-image: -webkit- + $image, 36 | spec-image: $image 37 | ); 38 | } 39 | 40 | @return $gradients; 41 | } 42 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_border-radius.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `border-radius` on both corners on the side of a box. 4 | /// 5 | /// @param {Number} $radii 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element-one { 10 | /// @include border-top-radius(5px); 11 | /// } 12 | /// 13 | /// .element-two { 14 | /// @include border-left-radius(3px); 15 | /// } 16 | /// 17 | /// @example css - CSS Output 18 | /// .element-one { 19 | /// border-top-left-radius: 5px; 20 | /// border-top-right-radius: 5px; 21 | /// } 22 | /// 23 | /// .element-two { 24 | /// border-bottom-left-radius: 3px; 25 | /// border-top-left-radius: 3px; 26 | /// } 27 | /// 28 | /// @output `border-radius` 29 | 30 | @mixin border-top-radius($radii) { 31 | border-top-left-radius: $radii; 32 | border-top-right-radius: $radii; 33 | } 34 | 35 | @mixin border-right-radius($radii) { 36 | border-bottom-right-radius: $radii; 37 | border-top-right-radius: $radii; 38 | } 39 | 40 | @mixin border-bottom-radius($radii) { 41 | border-bottom-left-radius: $radii; 42 | border-bottom-right-radius: $radii; 43 | } 44 | 45 | @mixin border-left-radius($radii) { 46 | border-bottom-left-radius: $radii; 47 | border-top-left-radius: $radii; 48 | } 49 | -------------------------------------------------------------------------------- /assets/html/browseAPI.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Browse APIs

4 | 5 |
6 |
7 | 14 | 15 |
16 |
17 | 18 |
    19 |
20 |

21 | If you find a bug, please note that this page acts as a central catalog and key service for public APIs. It does not hold the actual API code. For bugs in the APIs, please look for a link to the individual API pages and reach out there. For a problem in this page, please add an issue or pull request to the GitHub repository. 22 | 23 |

24 | 25 | 26 |
27 |
-------------------------------------------------------------------------------- /assets/scss/lib/css3/_keyframes.scss: -------------------------------------------------------------------------------- 1 | // Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content 2 | @mixin keyframes($name) { 3 | $original-prefix-for-webkit: $prefix-for-webkit; 4 | $original-prefix-for-mozilla: $prefix-for-mozilla; 5 | $original-prefix-for-microsoft: $prefix-for-microsoft; 6 | $original-prefix-for-opera: $prefix-for-opera; 7 | $original-prefix-for-spec: $prefix-for-spec; 8 | 9 | @if $original-prefix-for-webkit { 10 | @include disable-prefix-for-all(); 11 | $prefix-for-webkit: true !global; 12 | @-webkit-keyframes #{$name} { 13 | @content; 14 | } 15 | } 16 | 17 | @if $original-prefix-for-mozilla { 18 | @include disable-prefix-for-all(); 19 | $prefix-for-mozilla: true !global; 20 | @-moz-keyframes #{$name} { 21 | @content; 22 | } 23 | } 24 | 25 | $prefix-for-webkit: $original-prefix-for-webkit !global; 26 | $prefix-for-mozilla: $original-prefix-for-mozilla !global; 27 | $prefix-for-microsoft: $original-prefix-for-microsoft !global; 28 | $prefix-for-opera: $original-prefix-for-opera !global; 29 | $prefix-for-spec: $original-prefix-for-spec !global; 30 | 31 | @if $original-prefix-for-spec { 32 | @keyframes #{$name} { 33 | @content; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_size.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Sets the `width` and `height` of the element. 4 | /// 5 | /// @param {List} $size 6 | /// A list of at most 2 size values. 7 | /// 8 | /// If there is only a single value in `$size` it is used for both width and height. All units are supported. 9 | /// 10 | /// @example scss - Usage 11 | /// .first-element { 12 | /// @include size(2em); 13 | /// } 14 | /// 15 | /// .second-element { 16 | /// @include size(auto 10em); 17 | /// } 18 | /// 19 | /// @example css - CSS Output 20 | /// .first-element { 21 | /// width: 2em; 22 | /// height: 2em; 23 | /// } 24 | /// 25 | /// .second-element { 26 | /// width: auto; 27 | /// height: 10em; 28 | /// } 29 | /// 30 | /// @todo Refactor in 5.0.0 to use a comma-separated argument 31 | 32 | @mixin size($value) { 33 | $width: nth($value, 1); 34 | $height: $width; 35 | 36 | @if length($value) > 1 { 37 | $height: nth($value, 2); 38 | } 39 | 40 | @if is-size($height) { 41 | height: $height; 42 | } @else { 43 | @warn "`#{$height}` is not a valid length for the `$height` parameter in the `size` mixin."; 44 | } 45 | 46 | @if is-size($width) { 47 | width: $width; 48 | } @else { 49 | @warn "`#{$width}` is not a valid length for the `$width` parameter in the `size` mixin."; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_position.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for setting an element’s position. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Position} $position [relative] 6 | /// A CSS position value 7 | /// 8 | /// @param {Arglist} $coordinates [null null null null] 9 | /// List of values that correspond to the 4-value syntax for the edges of a box 10 | /// 11 | /// @example scss - Usage 12 | /// .element { 13 | /// @include position(absolute, 0 null null 10em); 14 | /// } 15 | /// 16 | /// @example css - CSS Output 17 | /// .element { 18 | /// left: 10em; 19 | /// position: absolute; 20 | /// top: 0; 21 | /// } 22 | /// 23 | /// @require {function} is-length 24 | /// @require {function} unpack 25 | 26 | @mixin position($position: relative, $coordinates: null null null null) { 27 | @if type-of($position) == list { 28 | $coordinates: $position; 29 | $position: relative; 30 | } 31 | 32 | $coordinates: unpack($coordinates); 33 | 34 | $offsets: ( 35 | top: nth($coordinates, 1), 36 | right: nth($coordinates, 2), 37 | bottom: nth($coordinates, 3), 38 | left: nth($coordinates, 4) 39 | ); 40 | 41 | position: $position; 42 | 43 | @each $offset, $value in $offsets { 44 | @if is-length($value) { 45 | #{$offset}: $value; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /assets/footer/OIT-footer.js: -------------------------------------------------------------------------------- 1 | function insertFooterHere(divParentID){ 2 | var divParent = document.getElementById(divParentID); 3 | var footBlock = document.createElement("div"); 4 | footBlock.setAttribute("w3-include-html" , "assets/footer/OIT-footer.html"); 5 | divParent.appendChild(footBlock); 6 | subIFH(); 7 | } 8 | 9 | function subIFH(){ 10 | var z, i, elmnt, file, xhttp; 11 | /* Loop through a collection of all HTML elements: */ 12 | z = document.getElementsByTagName("div"); 13 | for (i = 0; i < z.length; i++) { 14 | elmnt = z[i]; 15 | /*search for elements with a certain atrribute:*/ 16 | file = elmnt.getAttribute("w3-include-html"); 17 | if (file) { 18 | /* Make an HTTP request using the attribute value as the file name: */ 19 | xhttp = new XMLHttpRequest(); 20 | xhttp.onreadystatechange = function() { 21 | if (this.readyState == 4) { 22 | if (this.status == 200) {elmnt.innerHTML = this.responseText;} 23 | if (this.status == 404) {elmnt.innerHTML = "Page not found.";} 24 | /* Remove the attribute, and call this function once more: */ 25 | elmnt.removeAttribute("w3-include-html"); 26 | subIFH(); 27 | } 28 | } 29 | xhttp.open("GET", file, true); 30 | xhttp.send(); 31 | /* Exit the function: */ 32 | return; 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /assets/img/external-link-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/external-link.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/external-link-black.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/external-link-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/external-link-alt-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/footer/img/svg/rss25.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/social-icons/svg/rss25.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_columns.scss: -------------------------------------------------------------------------------- 1 | @mixin columns($arg: auto) { 2 | // || 3 | @include prefixer(columns, $arg, webkit moz spec); 4 | } 5 | 6 | @mixin column-count($int: auto) { 7 | // auto || integer 8 | @include prefixer(column-count, $int, webkit moz spec); 9 | } 10 | 11 | @mixin column-gap($length: normal) { 12 | // normal || length 13 | @include prefixer(column-gap, $length, webkit moz spec); 14 | } 15 | 16 | @mixin column-fill($arg: auto) { 17 | // auto || length 18 | @include prefixer(column-fill, $arg, webkit moz spec); 19 | } 20 | 21 | @mixin column-rule($arg) { 22 | // || || 23 | @include prefixer(column-rule, $arg, webkit moz spec); 24 | } 25 | 26 | @mixin column-rule-color($color) { 27 | @include prefixer(column-rule-color, $color, webkit moz spec); 28 | } 29 | 30 | @mixin column-rule-style($style: none) { 31 | // none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid 32 | @include prefixer(column-rule-style, $style, webkit moz spec); 33 | } 34 | 35 | @mixin column-rule-width ($width: none) { 36 | @include prefixer(column-rule-width, $width, webkit moz spec); 37 | } 38 | 39 | @mixin column-span($arg: none) { 40 | // none || all 41 | @include prefixer(column-span, $arg, webkit moz spec); 42 | } 43 | 44 | @mixin column-width($length: auto) { 45 | // auto || length 46 | @include prefixer(column-width, $length, webkit moz spec); 47 | } 48 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_str-to-num.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Helper function for linear/radial-gradient-parsers. 3 | // Source: http://sassmeister.com/gist/9647408 4 | //************************************************************************// 5 | @function _str-to-num($string) { 6 | // Matrices 7 | $strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"; 8 | $numbers: 0 1 2 3 4 5 6 7 8 9; 9 | 10 | // Result 11 | $result: 0; 12 | $divider: 0; 13 | $minus: false; 14 | 15 | // Looping through all characters 16 | @for $i from 1 through str-length($string) { 17 | $character: str-slice($string, $i, $i); 18 | $index: index($strings, $character); 19 | 20 | @if $character == "-" { 21 | $minus: true; 22 | } 23 | 24 | @else if $character == "." { 25 | $divider: 1; 26 | } 27 | 28 | @else { 29 | @if not $index { 30 | $result: if($minus, $result * -1, $result); 31 | @return _convert-units($result, str-slice($string, $i)); 32 | } 33 | 34 | $number: nth($numbers, $index); 35 | 36 | @if $divider == 0 { 37 | $result: $result * 10; 38 | } 39 | 40 | @else { 41 | // Move the decimal dot to the left 42 | $divider: $divider * 10; 43 | $number: $number / $divider; 44 | } 45 | 46 | $result: $result + $number; 47 | } 48 | } 49 | @return if($minus, $result * -1, $result); 50 | } 51 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_linear-gradient.scss: -------------------------------------------------------------------------------- 1 | @mixin linear-gradient($pos, $g1, $g2: null, 2 | $g3: null, $g4: null, 3 | $g5: null, $g6: null, 4 | $g7: null, $g8: null, 5 | $g9: null, $g10: null, 6 | $fallback: null) { 7 | // Detect what type of value exists in $pos 8 | $pos-type: type-of(nth($pos, 1)); 9 | $pos-spec: null; 10 | $pos-degree: null; 11 | 12 | // If $pos is missing from mixin, reassign vars and add default position 13 | @if ($pos-type == color) or (nth($pos, 1) == "transparent") { 14 | $g10: $g9; $g9: $g8; $g8: $g7; $g7: $g6; $g6: $g5; 15 | $g5: $g4; $g4: $g3; $g3: $g2; $g2: $g1; $g1: $pos; 16 | $pos: null; 17 | } 18 | 19 | @if $pos { 20 | $positions: _linear-positions-parser($pos); 21 | $pos-degree: nth($positions, 1); 22 | $pos-spec: nth($positions, 2); 23 | } 24 | 25 | $full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10; 26 | 27 | // Set $g1 as the default fallback color 28 | $fallback-color: nth($g1, 1); 29 | 30 | // If $fallback is a color use that color as the fallback color 31 | @if (type-of($fallback) == color) or ($fallback == "transparent") { 32 | $fallback-color: $fallback; 33 | } 34 | 35 | background-color: $fallback-color; 36 | background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome 37 | background-image: unquote("linear-gradient(#{$pos-spec}#{$full})"); 38 | } 39 | -------------------------------------------------------------------------------- /assets/scss/core/_fonts.scss: -------------------------------------------------------------------------------- 1 | /* stylelint-disable at-rule-empty-line-before */ 2 | @include font-face( 3 | 'Source Sans Pro', 4 | '#{$font-path}/sourcesanspro-light-webfont', 5 | 300, 6 | normal, 7 | $file-formats: eot woff2 woff ttf 8 | ); 9 | 10 | @include font-face( 11 | 'Source Sans Pro', 12 | '#{$font-path}/sourcesanspro-regular-webfont', 13 | 400, 14 | normal, 15 | $file-formats: eot woff2 woff ttf 16 | ); 17 | 18 | @include font-face( 19 | 'Source Sans Pro', 20 | '#{$font-path}/sourcesanspro-italic-webfont', 21 | 400, 22 | italic, 23 | $file-formats: eot woff2 woff ttf 24 | ); 25 | 26 | @include font-face( 27 | 'Source Sans Pro', 28 | '#{$font-path}/sourcesanspro-bold-webfont', 29 | 700, 30 | normal, 31 | $file-formats: eot woff2 woff ttf 32 | ); 33 | 34 | @include font-face( 35 | 'Merriweather', 36 | '#{$font-path}/merriweather-light-webfont', 37 | 300, 38 | normal, 39 | $file-formats: eot woff2 woff ttf 40 | ); 41 | 42 | @include font-face( 43 | 'Merriweather', 44 | '#{$font-path}/merriweather-regular-webfont', 45 | 400, 46 | normal, 47 | $file-formats: eot woff2 woff ttf 48 | ); 49 | 50 | @include font-face( 51 | 'Merriweather', 52 | '#{$font-path}/merriweather-italic-webfont', 53 | 400, 54 | italic, 55 | $file-formats: eot woff2 woff ttf 56 | ); 57 | 58 | @include font-face( 59 | 'Merriweather', 60 | '#{$font-path}/merriweather-bold-webfont', 61 | 700, 62 | normal, 63 | $file-formats: eot woff2 woff ttf 64 | ); 65 | /* stylelint-enable */ 66 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_background-image.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Background-image property for adding multiple background images with 3 | // gradients, or for stringing multiple gradients together. 4 | //************************************************************************// 5 | 6 | @mixin background-image($images...) { 7 | $webkit-images: (); 8 | $spec-images: (); 9 | 10 | @each $image in $images { 11 | $webkit-image: (); 12 | $spec-image: (); 13 | 14 | @if (type-of($image) == string) { 15 | $url-str: str-slice($image, 1, 3); 16 | $gradient-type: str-slice($image, 1, 6); 17 | 18 | @if $url-str == "url" { 19 | $webkit-image: $image; 20 | $spec-image: $image; 21 | } 22 | 23 | @else if $gradient-type == "linear" { 24 | $gradients: _linear-gradient-parser($image); 25 | $webkit-image: map-get($gradients, webkit-image); 26 | $spec-image: map-get($gradients, spec-image); 27 | } 28 | 29 | @else if $gradient-type == "radial" { 30 | $gradients: _radial-gradient-parser($image); 31 | $webkit-image: map-get($gradients, webkit-image); 32 | $spec-image: map-get($gradients, spec-image); 33 | } 34 | } 35 | 36 | $webkit-images: append($webkit-images, $webkit-image, comma); 37 | $spec-images: append($spec-images, $spec-image, comma); 38 | } 39 | 40 | background-image: $webkit-images; 41 | background-image: $spec-images; 42 | } 43 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_radial-gradient-parser.scss: -------------------------------------------------------------------------------- 1 | @function _radial-gradient-parser($image) { 2 | $image: unquote($image); 3 | $gradients: (); 4 | $start: str-index($image, "("); 5 | $end: str-index($image, ","); 6 | $first-val: str-slice($image, $start + 1, $end - 1); 7 | 8 | $prefix: str-slice($image, 1, $start); 9 | $suffix: str-slice($image, $end, str-length($image)); 10 | 11 | $is-spec-syntax: str-index($first-val, "at"); 12 | 13 | @if $is-spec-syntax and $is-spec-syntax > 1 { 14 | $keyword: str-slice($first-val, 1, $is-spec-syntax - 2); 15 | $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); 16 | $pos: append($pos, $keyword, comma); 17 | 18 | $gradients: ( 19 | webkit-image: -webkit- + $prefix + $pos + $suffix, 20 | spec-image: $image 21 | ); 22 | } 23 | 24 | @else if $is-spec-syntax == 1 { 25 | $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); 26 | 27 | $gradients: ( 28 | webkit-image: -webkit- + $prefix + $pos + $suffix, 29 | spec-image: $image 30 | ); 31 | } 32 | 33 | @else if str-index($image, "cover") or str-index($image, "contain") { 34 | @warn "Radial-gradient needs to be updated to conform to latest spec."; 35 | 36 | $gradients: ( 37 | webkit-image: null, 38 | spec-image: $image 39 | ); 40 | } 41 | 42 | @else { 43 | $gradients: ( 44 | webkit-image: -webkit- + $image, 45 | spec-image: $image 46 | ); 47 | } 48 | 49 | @return $gradients; 50 | } 51 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_radial-gradient.scss: -------------------------------------------------------------------------------- 1 | // Requires Sass 3.1+ 2 | @mixin radial-gradient($g1, $g2, 3 | $g3: null, $g4: null, 4 | $g5: null, $g6: null, 5 | $g7: null, $g8: null, 6 | $g9: null, $g10: null, 7 | $pos: null, 8 | $shape-size: null, 9 | $fallback: null) { 10 | 11 | $data: _radial-arg-parser($g1, $g2, $pos, $shape-size); 12 | $g1: nth($data, 1); 13 | $g2: nth($data, 2); 14 | $pos: nth($data, 3); 15 | $shape-size: nth($data, 4); 16 | 17 | $full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10; 18 | 19 | // Strip deprecated cover/contain for spec 20 | $shape-size-spec: _shape-size-stripper($shape-size); 21 | 22 | // Set $g1 as the default fallback color 23 | $first-color: nth($full, 1); 24 | $fallback-color: nth($first-color, 1); 25 | 26 | @if (type-of($fallback) == color) or ($fallback == "transparent") { 27 | $fallback-color: $fallback; 28 | } 29 | 30 | // Add Commas and spaces 31 | $shape-size: if($shape-size, "#{$shape-size}, ", null); 32 | $pos: if($pos, "#{$pos}, ", null); 33 | $pos-spec: if($pos, "at #{$pos}", null); 34 | $shape-size-spec: if(($shape-size-spec != " ") and ($pos == null), "#{$shape-size-spec}, ", "#{$shape-size-spec} "); 35 | 36 | background-color: $fallback-color; 37 | background-image: -webkit-radial-gradient(#{$pos}#{$shape-size}#{$full}); 38 | background-image: radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full}); 39 | } 40 | -------------------------------------------------------------------------------- /assets/img/alerts/warning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 16 | 17 | -------------------------------------------------------------------------------- /assets/scss/_variables-nasa.scss: -------------------------------------------------------------------------------- 1 | // These variables override the variables set in _variables.scss to customize USWDS for NASA. 2 | 3 | // Typography 4 | $em-base: 10px; 5 | $base-font-size: 1.7rem !default; 6 | $small-font-size: 1.4rem !default; 7 | $lead-font-size: 2.2rem !default; 8 | $title-font-size: 5.2rem !default; 9 | $h1-font-size: 4.4rem !default; 10 | $h2-font-size: 3.4rem !default; 11 | $h3-font-size: 2.4rem !default; 12 | $h4-font-size: 1.9rem !default; 13 | $h5-font-size: 1.6rem !default; 14 | $h6-font-size: 1.3rem !default; 15 | $base-line-height: 1.5 !default; 16 | $heading-line-height: 1.2 !default; 17 | $lead-line-height: 1.5 !default; 18 | 19 | // Color 20 | $color-primary: #105bd8 !default; // lighten($color-primary-darker, 15%) 21 | $color-primary-darker: #0b3d91 !default; //#1d4893 !default; //#164493 !default; 22 | $color-primary-darkest: #061f4a !default; //#112951 !default; // darken($color-primary-darker, 15%) 23 | 24 | $color-secondary: #dd361c !default; 25 | $color-secondary-darkest: #99231b !default; 26 | $color-secondary-dark: #c62d1f !default; 27 | $color-secondary-light: #e59892 !default; // lighten($color-secondary, 60%) 28 | $color-secondary-lightest: #f9e0de !default; // lighten($color-secondary, 90%) 29 | 30 | $color-gold: #ff9d1e !default; 31 | $color-gold-light: #f9aa43 !default; 32 | $color-gold-lighter: #ffc375 !default; 33 | $color-gold-lightest: #ffebd1 !default; 34 | 35 | // These variables are specific to NASAWDS 36 | 37 | $heading-letter-spacing: -.021em !default; 38 | -------------------------------------------------------------------------------- /assets/js/contentLoader.js: -------------------------------------------------------------------------------- 1 | var sectionCounter = 1; 2 | 3 | function insertBlockXatY(divAddPath,divParentID,isInsertBefore){ 4 | var divParent = document.getElementsByTagName(divParentID); 5 | var newBlock = document.createElement("div"); 6 | newBlock.id = "section" + sectionCounter.toString(); 7 | sectionCounter++; 8 | newBlock.setAttribute("w3-include-html" , divAddPath); 9 | if(isInsertBefore){ 10 | divParent[0].insertBefore(newBlock, divParent[0].children[0]); 11 | } 12 | else{ 13 | divParent[0].appendChild(newBlock); 14 | } 15 | } 16 | 17 | function loadContent(){ 18 | var z, i, elmnt, file, xhttp; 19 | /* Loop through a collection of all HTML elements: */ 20 | z = document.getElementsByTagName("div"); 21 | for (i = 0; i < z.length; i++) { 22 | elmnt = z[i]; 23 | /*search for elements with a certain atrribute:*/ 24 | file = elmnt.getAttribute("w3-include-html"); 25 | if (file) { 26 | /* Make an HTTP request using the attribute value as the file name: */ 27 | xhttp = new XMLHttpRequest(); 28 | xhttp.onreadystatechange = function() { 29 | if (this.readyState == 4) { 30 | if (this.status == 200) {elmnt.innerHTML = this.responseText;} 31 | if (this.status == 404) {elmnt.innerHTML = "Page not found.";} 32 | /* Remove the attribute, and call this function once more: */ 33 | elmnt.removeAttribute("w3-include-html"); 34 | $(elmnt.children[0]).unwrap(); 35 | loadContent(); 36 | } 37 | } 38 | xhttp.open("GET", file, true); 39 | xhttp.send(); 40 | /* Exit the function: */ 41 | return; 42 | } 43 | } 44 | loadAPIs(); 45 | setupPage(); 46 | } -------------------------------------------------------------------------------- /assets/scss/lib/css3/_animation.scss: -------------------------------------------------------------------------------- 1 | // http://www.w3.org/TR/css3-animations/#the-animation-name-property- 2 | // Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties. 3 | 4 | @mixin animation($animations...) { 5 | @include prefixer(animation, $animations, webkit moz spec); 6 | } 7 | 8 | @mixin animation-name($names...) { 9 | @include prefixer(animation-name, $names, webkit moz spec); 10 | } 11 | 12 | @mixin animation-duration($times...) { 13 | @include prefixer(animation-duration, $times, webkit moz spec); 14 | } 15 | 16 | @mixin animation-timing-function($motions...) { 17 | // ease | linear | ease-in | ease-out | ease-in-out 18 | @include prefixer(animation-timing-function, $motions, webkit moz spec); 19 | } 20 | 21 | @mixin animation-iteration-count($values...) { 22 | // infinite | 23 | @include prefixer(animation-iteration-count, $values, webkit moz spec); 24 | } 25 | 26 | @mixin animation-direction($directions...) { 27 | // normal | alternate 28 | @include prefixer(animation-direction, $directions, webkit moz spec); 29 | } 30 | 31 | @mixin animation-play-state($states...) { 32 | // running | paused 33 | @include prefixer(animation-play-state, $states, webkit moz spec); 34 | } 35 | 36 | @mixin animation-delay($times...) { 37 | @include prefixer(animation-delay, $times, webkit moz spec); 38 | } 39 | 40 | @mixin animation-fill-mode($modes...) { 41 | // none | forwards | backwards | both 42 | @include prefixer(animation-fill-mode, $modes, webkit moz spec); 43 | } 44 | -------------------------------------------------------------------------------- /assets/img/alerts/error.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 17 | 18 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_shift.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction. 4 | /// 5 | /// @param {Number (unitless)} $n-columns [1] 6 | /// Number of columns by which the element shifts. 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include shift(-3); 11 | /// } 12 | /// 13 | /// @example css - CSS output 14 | /// .element { 15 | /// margin-left: -25.58941%; 16 | /// } 17 | 18 | @mixin shift($n-columns: 1) { 19 | @include shift-in-context($n-columns); 20 | } 21 | 22 | /// Translates an element horizontally by a number of columns, in a specific nesting context. 23 | /// 24 | /// @param {List} $shift 25 | /// A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`). 26 | /// 27 | /// The two values can be separated with any string such as `of`, `/`, etc. 28 | /// 29 | /// @example scss - Usage 30 | /// .element { 31 | /// @include shift(-3 of 6); 32 | /// } 33 | /// 34 | /// @example css - CSS output 35 | /// .element { 36 | /// margin-left: -52.41458%; 37 | /// } 38 | 39 | @mixin shift-in-context($shift: $columns of $container-columns) { 40 | $n-columns: nth($shift, 1); 41 | $parent-columns: container-shift($shift) !global; 42 | 43 | $direction: get-direction($layout-direction, $default-layout-direction); 44 | $opposite-direction: get-opposite-direction($direction); 45 | 46 | margin-#{$opposite-direction}: $n-columns * flex-grid(1, $parent-columns) + $n-columns * flex-gutter($parent-columns); 47 | 48 | // Reset nesting context 49 | $parent-columns: $grid-columns !global; 50 | } 51 | -------------------------------------------------------------------------------- /assets/img/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fill 15 Copy 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /assets/scss/lib/settings/_grid.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. Set with a `!global` flag. 4 | /// 5 | /// @type Number (Unit) 6 | 7 | $column: 4.2358em !default; 8 | 9 | /// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. Set with the `!global` flag. 10 | /// 11 | /// @type Number (Unit) 12 | 13 | $gutter: 1.618em !default; 14 | 15 | /// Sets the total number of columns in the grid. Its value can be overridden inside a media query using the `media()` mixin. Set with the `!global` flag. 16 | /// 17 | /// @type Number (Unitless) 18 | 19 | $grid-columns: 12 !default; 20 | 21 | /// Sets the max-width property of the element that includes `outer-container()`. Set with the `!global` flag. 22 | /// 23 | /// @type Number (Unit) 24 | /// 25 | $max-width: 1200px !default; 26 | 27 | /// When set to true, it sets the box-sizing property of all elements to `border-box`. Set with a `!global` flag. 28 | /// 29 | /// @type Bool 30 | /// 31 | /// @example css - CSS Output 32 | /// html { 33 | /// box-sizing: border-box; } 34 | /// 35 | /// *, *::after, *::before { 36 | /// box-sizing: inherit; 37 | /// } 38 | 39 | $border-box-sizing: true !default; 40 | 41 | /// Sets the default [media feature](http://www.w3.org/TR/css3-mediaqueries/#media) that `media()` and `new-breakpoint()` revert to when only a breakpoint value is passed. Set with a `!global` flag. 42 | /// 43 | /// @type String 44 | 45 | $default-feature: min-width; // Default @media feature for the breakpoint() mixin 46 | 47 | ///Sets the default layout direction of the grid. Can be `LTR` or `RTL`. Set with a `!global` flag. 48 | /// 49 | ///@type String 50 | 51 | $default-layout-direction: LTR !default; 52 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_row.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout. 4 | /// 5 | /// @param {String} $display [default] 6 | /// Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`. 7 | /// 8 | /// @param {String} $direction [$default-layout-direction] 9 | /// Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left). 10 | /// 11 | /// @example scss - Usage 12 | /// .element { 13 | /// @include row(); 14 | /// } 15 | /// 16 | /// @example css - CSS Output 17 | /// .element { 18 | /// *zoom: 1; 19 | /// display: block; 20 | /// } 21 | /// 22 | /// .element:before, .element:after { 23 | /// content: " "; 24 | /// display: table; 25 | /// } 26 | /// 27 | /// .element:after { 28 | /// clear: both; 29 | /// } 30 | 31 | @mixin row($display: default, $direction: $default-layout-direction) { 32 | @if $direction != $default-layout-direction { 33 | @include -neat-warn("The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin."); 34 | } 35 | 36 | $layout-direction: $direction !global; 37 | 38 | @if $display != default { 39 | @include -neat-warn("The $display argument will be deprecated in future versions in favor of the display(){...} mixin."); 40 | } 41 | 42 | @if $display == table { 43 | display: table; 44 | @include fill-parent; 45 | table-layout: fixed; 46 | $container-display-table: true !global; 47 | } @else { 48 | @include clearfix; 49 | display: block; 50 | $container-display-table: false !global; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_timing-functions.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie) 4 | /// 5 | /// Timing functions are the same as demoed here: http://jqueryui.com/resources/demos/effect/easing.html 6 | /// 7 | /// @type cubic-bezier 8 | 9 | $ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530); 10 | $ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190); 11 | $ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220); 12 | $ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060); 13 | $ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715); 14 | $ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035); 15 | $ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335); 16 | $ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045); 17 | 18 | $ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940); 19 | $ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000); 20 | $ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000); 21 | $ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000); 22 | $ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000); 23 | $ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000); 24 | $ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000); 25 | $ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275); 26 | 27 | $ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955); 28 | $ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000); 29 | $ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000); 30 | $ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000); 31 | $ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950); 32 | $ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000); 33 | $ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860); 34 | $ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550); 35 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_modular-scale.scss: -------------------------------------------------------------------------------- 1 | // Scaling Variables 2 | $golden: 1.618; 3 | $minor-second: 1.067; 4 | $major-second: 1.125; 5 | $minor-third: 1.2; 6 | $major-third: 1.25; 7 | $perfect-fourth: 1.333; 8 | $augmented-fourth: 1.414; 9 | $perfect-fifth: 1.5; 10 | $minor-sixth: 1.6; 11 | $major-sixth: 1.667; 12 | $minor-seventh: 1.778; 13 | $major-seventh: 1.875; 14 | $octave: 2; 15 | $major-tenth: 2.5; 16 | $major-eleventh: 2.667; 17 | $major-twelfth: 3; 18 | $double-octave: 4; 19 | 20 | $modular-scale-ratio: $perfect-fourth !default; 21 | $modular-scale-base: em($em-base) !default; 22 | 23 | @function modular-scale($increment, $value: $modular-scale-base, $ratio: $modular-scale-ratio) { 24 | $v1: nth($value, 1); 25 | $v2: nth($value, length($value)); 26 | $value: $v1; 27 | 28 | // scale $v2 to just above $v1 29 | @while $v2 > $v1 { 30 | $v2: ($v2 / $ratio); // will be off-by-1 31 | } 32 | @while $v2 < $v1 { 33 | $v2: ($v2 * $ratio); // will fix off-by-1 34 | } 35 | 36 | // check AFTER scaling $v2 to prevent double-counting corner-case 37 | $double-stranded: $v2 > $v1; 38 | 39 | @if $increment > 0 { 40 | @for $i from 1 through $increment { 41 | @if $double-stranded and ($v1 * $ratio) > $v2 { 42 | $value: $v2; 43 | $v2: ($v2 * $ratio); 44 | } @else { 45 | $v1: ($v1 * $ratio); 46 | $value: $v1; 47 | } 48 | } 49 | } 50 | 51 | @if $increment < 0 { 52 | // adjust $v2 to just below $v1 53 | @if $double-stranded { 54 | $v2: ($v2 / $ratio); 55 | } 56 | 57 | @for $i from $increment through -1 { 58 | @if $double-stranded and ($v1 / $ratio) < $v2 { 59 | $value: $v2; 60 | $v2: ($v2 / $ratio); 61 | } @else { 62 | $v1: ($v1 / $ratio); 63 | $value: $v1; 64 | } 65 | } 66 | } 67 | 68 | @return $value; 69 | } 70 | -------------------------------------------------------------------------------- /assets/img/alerts/info.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 18 | 19 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_prefixer.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// A mixin for generating vendor prefixes on non-standardized properties. 4 | /// 5 | /// @param {String} $property 6 | /// Property to prefix 7 | /// 8 | /// @param {*} $value 9 | /// Value to use 10 | /// 11 | /// @param {List} $prefixes 12 | /// Prefixes to define 13 | /// 14 | /// @example scss - Usage 15 | /// .element { 16 | /// @include prefixer(border-radius, 10px, webkit ms spec); 17 | /// } 18 | /// 19 | /// @example css - CSS Output 20 | /// .element { 21 | /// -webkit-border-radius: 10px; 22 | /// -moz-border-radius: 10px; 23 | /// border-radius: 10px; 24 | /// } 25 | /// 26 | /// @require {variable} $prefix-for-webkit 27 | /// @require {variable} $prefix-for-mozilla 28 | /// @require {variable} $prefix-for-microsoft 29 | /// @require {variable} $prefix-for-opera 30 | /// @require {variable} $prefix-for-spec 31 | 32 | @mixin prefixer($property, $value, $prefixes) { 33 | @each $prefix in $prefixes { 34 | @if $prefix == webkit { 35 | @if $prefix-for-webkit { 36 | -webkit-#{$property}: $value; 37 | } 38 | } @else if $prefix == moz { 39 | @if $prefix-for-mozilla { 40 | -moz-#{$property}: $value; 41 | } 42 | } @else if $prefix == ms { 43 | @if $prefix-for-microsoft { 44 | -ms-#{$property}: $value; 45 | } 46 | } @else if $prefix == o { 47 | @if $prefix-for-opera { 48 | -o-#{$property}: $value; 49 | } 50 | } @else if $prefix == spec { 51 | @if $prefix-for-spec { 52 | #{$property}: $value; 53 | } 54 | } @else { 55 | @warn "Unrecognized prefix: #{$prefix}"; 56 | } 57 | } 58 | } 59 | 60 | @mixin disable-prefix-for-all() { 61 | $prefix-for-webkit: false !global; 62 | $prefix-for-mozilla: false !global; 63 | $prefix-for-microsoft: false !global; 64 | $prefix-for-opera: false !global; 65 | $prefix-for-spec: false !global; 66 | } 67 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_buttons.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Generates variables for all buttons. Please note that you must use interpolation on the variable: `#{$all-buttons}`. 4 | /// 5 | /// @example scss - Usage 6 | /// #{$all-buttons} { 7 | /// background-color: #f00; 8 | /// } 9 | /// 10 | /// #{$all-buttons-focus}, 11 | /// #{$all-buttons-hover} { 12 | /// background-color: #0f0; 13 | /// } 14 | /// 15 | /// #{$all-buttons-active} { 16 | /// background-color: #00f; 17 | /// } 18 | /// 19 | /// @example css - CSS Output 20 | /// button, 21 | /// input[type="button"], 22 | /// input[type="reset"], 23 | /// input[type="submit"] { 24 | /// background-color: #f00; 25 | /// } 26 | /// 27 | /// button:focus, 28 | /// input[type="button"]:focus, 29 | /// input[type="reset"]:focus, 30 | /// input[type="submit"]:focus, 31 | /// button:hover, 32 | /// input[type="button"]:hover, 33 | /// input[type="reset"]:hover, 34 | /// input[type="submit"]:hover { 35 | /// background-color: #0f0; 36 | /// } 37 | /// 38 | /// button:active, 39 | /// input[type="button"]:active, 40 | /// input[type="reset"]:active, 41 | /// input[type="submit"]:active { 42 | /// background-color: #00f; 43 | /// } 44 | /// 45 | /// @require assign-inputs 46 | /// 47 | /// @type List 48 | /// 49 | /// @todo Remove double assigned variables (Lines 59–62) in v5.0.0 50 | 51 | $buttons-list: 'button', 52 | 'input[type="button"]', 53 | 'input[type="reset"]', 54 | 'input[type="submit"]'; 55 | 56 | $all-buttons: assign-inputs($buttons-list); 57 | $all-buttons-active: assign-inputs($buttons-list, active); 58 | $all-buttons-focus: assign-inputs($buttons-list, focus); 59 | $all-buttons-hover: assign-inputs($buttons-list, hover); 60 | 61 | $all-button-inputs: $all-buttons; 62 | $all-button-inputs-active: $all-buttons-active; 63 | $all-button-inputs-focus: $all-buttons-focus; 64 | $all-button-inputs-hover: $all-buttons-hover; 65 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_background.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Background property for adding multiple backgrounds using shorthand 3 | // notation. 4 | //************************************************************************// 5 | 6 | @mixin background($backgrounds...) { 7 | $webkit-backgrounds: (); 8 | $spec-backgrounds: (); 9 | 10 | @each $background in $backgrounds { 11 | $webkit-background: (); 12 | $spec-background: (); 13 | $background-type: type-of($background); 14 | 15 | @if $background-type == string or $background-type == list { 16 | $background-str: if($background-type == list, nth($background, 1), $background); 17 | 18 | $url-str: str-slice($background-str, 1, 3); 19 | $gradient-type: str-slice($background-str, 1, 6); 20 | 21 | @if $url-str == "url" { 22 | $webkit-background: $background; 23 | $spec-background: $background; 24 | } 25 | 26 | @else if $gradient-type == "linear" { 27 | $gradients: _linear-gradient-parser("#{$background}"); 28 | $webkit-background: map-get($gradients, webkit-image); 29 | $spec-background: map-get($gradients, spec-image); 30 | } 31 | 32 | @else if $gradient-type == "radial" { 33 | $gradients: _radial-gradient-parser("#{$background}"); 34 | $webkit-background: map-get($gradients, webkit-image); 35 | $spec-background: map-get($gradients, spec-image); 36 | } 37 | 38 | @else { 39 | $webkit-background: $background; 40 | $spec-background: $background; 41 | } 42 | } 43 | 44 | @else { 45 | $webkit-background: $background; 46 | $spec-background: $background; 47 | } 48 | 49 | $webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma); 50 | $spec-backgrounds: append($spec-backgrounds, $spec-background, comma); 51 | } 52 | 53 | background: $webkit-backgrounds; 54 | background: $spec-backgrounds; 55 | } 56 | -------------------------------------------------------------------------------- /assets/scss/lib/functions/_new-breakpoint.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Returns a media context (media query / grid context) that can be stored in a variable and passed to `media()` as a single-keyword argument. Media contexts defined using `new-breakpoint` are used by the visual grid, as long as they are defined before importing Neat. 4 | /// 5 | /// @param {List} $query 6 | /// A list of media query features and values. Each `$feature` should have a corresponding `$value`. 7 | /// 8 | /// If there is only a single `$value` in `$query`, `$default-feature` is going to be used. 9 | /// 10 | /// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). 11 | /// 12 | /// @param {Number (unitless)} $total-columns [$grid-columns] 13 | /// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. 14 | /// 15 | /// @example scss - Usage 16 | /// $mobile: new-breakpoint(max-width 480px 4); 17 | /// 18 | /// .element { 19 | /// @include media($mobile) { 20 | /// @include span-columns(4); 21 | /// } 22 | /// } 23 | /// 24 | /// @example css - CSS Output 25 | /// @media screen and (max-width: 480px) { 26 | /// .element { 27 | /// display: block; 28 | /// float: left; 29 | /// margin-right: 7.42297%; 30 | /// width: 100%; 31 | /// } 32 | /// .element:last-child { 33 | /// margin-right: 0; 34 | /// } 35 | /// } 36 | 37 | @function new-breakpoint($query: $feature $value $columns, $total-columns: $grid-columns) { 38 | @if length($query) == 1 { 39 | $query: $default-feature nth($query, 1) $total-columns; 40 | } @else if is-even(length($query)) { 41 | $query: append($query, $total-columns); 42 | } 43 | 44 | @if is-not(belongs-to($query, $visual-grid-breakpoints)) { 45 | $visual-grid-breakpoints: append($visual-grid-breakpoints, $query, comma) !global; 46 | } 47 | 48 | @return $query; 49 | } 50 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_border-image.scss: -------------------------------------------------------------------------------- 1 | @mixin border-image($borders...) { 2 | $webkit-borders: (); 3 | $spec-borders: (); 4 | 5 | @each $border in $borders { 6 | $webkit-border: (); 7 | $spec-border: (); 8 | $border-type: type-of($border); 9 | 10 | @if $border-type == string or list { 11 | $border-str: if($border-type == list, nth($border, 1), $border); 12 | 13 | $url-str: str-slice($border-str, 1, 3); 14 | $gradient-type: str-slice($border-str, 1, 6); 15 | 16 | @if $url-str == "url" { 17 | $webkit-border: $border; 18 | $spec-border: $border; 19 | } 20 | 21 | @else if $gradient-type == "linear" { 22 | $gradients: _linear-gradient-parser("#{$border}"); 23 | $webkit-border: map-get($gradients, webkit-image); 24 | $spec-border: map-get($gradients, spec-image); 25 | } 26 | 27 | @else if $gradient-type == "radial" { 28 | $gradients: _radial-gradient-parser("#{$border}"); 29 | $webkit-border: map-get($gradients, webkit-image); 30 | $spec-border: map-get($gradients, spec-image); 31 | } 32 | 33 | @else { 34 | $webkit-border: $border; 35 | $spec-border: $border; 36 | } 37 | } 38 | 39 | @else { 40 | $webkit-border: $border; 41 | $spec-border: $border; 42 | } 43 | 44 | $webkit-borders: append($webkit-borders, $webkit-border, comma); 45 | $spec-borders: append($spec-borders, $spec-border, comma); 46 | } 47 | 48 | -webkit-border-image: $webkit-borders; 49 | border-image: $spec-borders; 50 | border-style: solid; 51 | } 52 | 53 | //Examples: 54 | // @include border-image(url("image.png")); 55 | // @include border-image(url("image.png") 20 stretch); 56 | // @include border-image(linear-gradient(45deg, orange, yellow)); 57 | // @include border-image(linear-gradient(45deg, orange, yellow) stretch); 58 | // @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round); 59 | // @include border-image(radial-gradient(top, cover, orange, yellow, orange)); 60 | -------------------------------------------------------------------------------- /assets/img/close-primary.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | UI element / Icons / Close 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_radial-arg-parser.scss: -------------------------------------------------------------------------------- 1 | @function _radial-arg-parser($g1, $g2, $pos, $shape-size) { 2 | @each $value in $g1, $g2 { 3 | $first-val: nth($value, 1); 4 | $pos-type: type-of($first-val); 5 | $spec-at-index: null; 6 | 7 | // Determine if spec was passed to mixin 8 | @if type-of($value) == list { 9 | $spec-at-index: if(index($value, at), index($value, at), false); 10 | } 11 | @if $spec-at-index { 12 | @if $spec-at-index > 1 { 13 | @for $i from 1 through ($spec-at-index - 1) { 14 | $shape-size: $shape-size nth($value, $i); 15 | } 16 | @for $i from ($spec-at-index + 1) through length($value) { 17 | $pos: $pos nth($value, $i); 18 | } 19 | } 20 | @else if $spec-at-index == 1 { 21 | @for $i from ($spec-at-index + 1) through length($value) { 22 | $pos: $pos nth($value, $i); 23 | } 24 | } 25 | $g1: null; 26 | } 27 | 28 | // If not spec calculate correct values 29 | @else { 30 | @if ($pos-type != color) or ($first-val != "transparent") { 31 | @if ($pos-type == number) 32 | or ($first-val == "center") 33 | or ($first-val == "top") 34 | or ($first-val == "right") 35 | or ($first-val == "bottom") 36 | or ($first-val == "left") { 37 | 38 | $pos: $value; 39 | 40 | @if $pos == $g1 { 41 | $g1: null; 42 | } 43 | } 44 | 45 | @else if 46 | ($first-val == "ellipse") 47 | or ($first-val == "circle") 48 | or ($first-val == "closest-side") 49 | or ($first-val == "closest-corner") 50 | or ($first-val == "farthest-side") 51 | or ($first-val == "farthest-corner") 52 | or ($first-val == "contain") 53 | or ($first-val == "cover") { 54 | 55 | $shape-size: $value; 56 | 57 | @if $value == $g1 { 58 | $g1: null; 59 | } 60 | 61 | @else if $value == $g2 { 62 | $g2: null; 63 | } 64 | } 65 | } 66 | } 67 | } 68 | @return $g1, $g2, $pos, $shape-size; 69 | } 70 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_linear-positions-parser.scss: -------------------------------------------------------------------------------- 1 | @function _linear-positions-parser($pos) { 2 | $type: type-of(nth($pos, 1)); 3 | $spec: null; 4 | $degree: null; 5 | $side: null; 6 | $corner: null; 7 | $length: length($pos); 8 | // Parse Side and corner positions 9 | @if ($length > 1) { 10 | @if nth($pos, 1) == "to" { // Newer syntax 11 | $side: nth($pos, 2); 12 | 13 | @if $length == 2 { // eg. to top 14 | // Swap for backwards compatibility 15 | $degree: _position-flipper(nth($pos, 2)); 16 | } 17 | @else if $length == 3 { // eg. to top left 18 | $corner: nth($pos, 3); 19 | } 20 | } 21 | @else if $length == 2 { // Older syntax ("top left") 22 | $side: _position-flipper(nth($pos, 1)); 23 | $corner: _position-flipper(nth($pos, 2)); 24 | } 25 | 26 | @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") { 27 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); 28 | } 29 | @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") { 30 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); 31 | } 32 | @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") { 33 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); 34 | } 35 | @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") { 36 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); 37 | } 38 | $spec: to $side $corner; 39 | } 40 | @else if $length == 1 { 41 | // Swap for backwards compatibility 42 | @if $type == string { 43 | $degree: $pos; 44 | $spec: to _position-flipper($pos); 45 | } 46 | @else { 47 | $degree: -270 - $pos; //rotate the gradient opposite from spec 48 | $spec: $pos; 49 | } 50 | } 51 | $degree: unquote($degree + ","); 52 | $spec: unquote($spec + ","); 53 | @return $degree $spec; 54 | } 55 | 56 | @function _position-flipper($pos) { 57 | @return if($pos == left, right, null) 58 | if($pos == right, left, null) 59 | if($pos == top, bottom, null) 60 | if($pos == bottom, top, null); 61 | } 62 | -------------------------------------------------------------------------------- /assets/img/search-primary.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fill 200 Copy 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /assets/scss/lib/css3/_transition.scss: -------------------------------------------------------------------------------- 1 | // Shorthand mixin. Supports multiple parentheses-deliminated values for each variable. 2 | // Example: @include transition (all 2s ease-in-out); 3 | // @include transition (opacity 1s ease-in 2s, width 2s ease-out); 4 | // @include transition-property (transform, opacity); 5 | 6 | @mixin transition($properties...) { 7 | // Fix for vendor-prefix transform property 8 | $needs-prefixes: false; 9 | $webkit: (); 10 | $moz: (); 11 | $spec: (); 12 | 13 | // Create lists for vendor-prefixed transform 14 | @each $list in $properties { 15 | @if nth($list, 1) == "transform" { 16 | $needs-prefixes: true; 17 | $list1: -webkit-transform; 18 | $list2: -moz-transform; 19 | $list3: (); 20 | 21 | @each $var in $list { 22 | $list3: join($list3, $var); 23 | 24 | @if $var != "transform" { 25 | $list1: join($list1, $var); 26 | $list2: join($list2, $var); 27 | } 28 | } 29 | 30 | $webkit: append($webkit, $list1); 31 | $moz: append($moz, $list2); 32 | $spec: append($spec, $list3); 33 | } @else { 34 | $webkit: append($webkit, $list, comma); 35 | $moz: append($moz, $list, comma); 36 | $spec: append($spec, $list, comma); 37 | } 38 | } 39 | 40 | @if $needs-prefixes { 41 | -webkit-transition: $webkit; 42 | -moz-transition: $moz; 43 | transition: $spec; 44 | } @else { 45 | @if length($properties) >= 1 { 46 | @include prefixer(transition, $properties, webkit moz spec); 47 | } @else { 48 | $properties: all 0.15s ease-out 0s; 49 | @include prefixer(transition, $properties, webkit moz spec); 50 | } 51 | } 52 | } 53 | 54 | @mixin transition-property($properties...) { 55 | -webkit-transition-property: transition-property-names($properties, "webkit"); 56 | -moz-transition-property: transition-property-names($properties, "moz"); 57 | transition-property: transition-property-names($properties, false); 58 | } 59 | 60 | @mixin transition-duration($times...) { 61 | @include prefixer(transition-duration, $times, webkit moz spec); 62 | } 63 | 64 | @mixin transition-timing-function($motions...) { 65 | // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier() 66 | @include prefixer(transition-timing-function, $motions, webkit moz spec); 67 | } 68 | 69 | @mixin transition-delay($times...) { 70 | @include prefixer(transition-delay, $times, webkit moz spec); 71 | } 72 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # api-docs: gh-pages 2 | 3 | ### nasa/api-docs repository contains the front-end for http://api.nasa.gov/. This site is currently CNAME mapped to NASA domain, but in the event the page is down, you can access it through Github Pages here: http://nasa.github.io/api-docs/ . 4 | 5 | This is the current iteration of api.nasa.gov. 6 | 7 | This project contains API listings of available NASA public APIs and well as a GSA API key form to allow NASA branded API pages to be integrated with the GSA api.data.gov system. Our listing is currently **incomplete** as we are currently displaying the more simple API's in our .json storage system. 8 | 9 | For other US government agency API pages, see https://api.data.gov/ 10 | 11 | ## Features 12 | 13 | * Obtain an API key by filling out the form in the **Generate API Key** Section 14 | * Information about the usage capabilities of your API in the **Authentication** Section 15 | * A list of a few NASA publics API's and how to use them in the **Browse APIs** Section 16 | 17 | 18 | ## Libraries and Software 19 | 20 | api.nasa.gov utilizes the following libraries and resources: 21 | 22 | * NASA Web Design Service(CSS and JS): A style system created in order to help NASA websites have a more unified look. You can find their info here https://nasa.github.io/nasawds-site/ 23 | * JQuery (JS): A library that simplifies the javascript coding process 24 | 25 | The API information that our site hosts is currently archived in our *apis.json* folder which is then read and generated into the page dynamically. 26 | 27 | ## NOTICE: NASA does not host/develop these APIs 28 | We only map the orginal developer's endpoint to one of our api.nasa.gov endpoints. Basically, api.nasa.gov acts as a passthrough service. Please do not contact us with technical questions about a particular API as we do not have access to most API production environments. You can follow links on our site to get more information about each API and use the contact information on those pages to reach the people who control each API. 29 | 30 | ### If you are a NASA civil servant or contractor and wish to add an API to api.nasa.gov, please contact hq-open-innovation@mail.nasa.gov. 31 | #### If you are behind the NASA firewall, you can find additional details on https://developer.nasa.gov/pages/OpenInnovation/Table_of_Contents_Public/2021/05/14/API-NASA-GOV.html 32 | 33 | **Site Developer**: Darith Yim, Daniel Rendon, Tessa Brazda 34 | 35 | **NASA Official**: Nidhi Wahi 36 | 37 | Last updated: 07/31/2024 38 | -------------------------------------------------------------------------------- /assets/footer/img/svg/youtube15.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/social-icons/svg/youtube15.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/scss/lib/addons/_triangle.scss: -------------------------------------------------------------------------------- 1 | @mixin triangle($size, $color, $direction) { 2 | $width: nth($size, 1); 3 | $height: nth($size, length($size)); 4 | $foreground-color: nth($color, 1); 5 | $background-color: if(length($color) == 2, nth($color, 2), transparent); 6 | height: 0; 7 | width: 0; 8 | 9 | @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) { 10 | $width: $width / 2; 11 | $height: if(length($size) > 1, $height, $height/2); 12 | 13 | @if $direction == up { 14 | border-bottom: $height solid $foreground-color; 15 | border-left: $width solid $background-color; 16 | border-right: $width solid $background-color; 17 | } @else if $direction == right { 18 | border-bottom: $width solid $background-color; 19 | border-left: $height solid $foreground-color; 20 | border-top: $width solid $background-color; 21 | } @else if $direction == down { 22 | border-left: $width solid $background-color; 23 | border-right: $width solid $background-color; 24 | border-top: $height solid $foreground-color; 25 | } @else if $direction == left { 26 | border-bottom: $width solid $background-color; 27 | border-right: $height solid $foreground-color; 28 | border-top: $width solid $background-color; 29 | } 30 | } @else if ($direction == up-right) or ($direction == up-left) { 31 | border-top: $height solid $foreground-color; 32 | 33 | @if $direction == up-right { 34 | border-left: $width solid $background-color; 35 | } @else if $direction == up-left { 36 | border-right: $width solid $background-color; 37 | } 38 | } @else if ($direction == down-right) or ($direction == down-left) { 39 | border-bottom: $height solid $foreground-color; 40 | 41 | @if $direction == down-right { 42 | border-left: $width solid $background-color; 43 | } @else if $direction == down-left { 44 | border-right: $width solid $background-color; 45 | } 46 | } @else if ($direction == inset-up) { 47 | border-color: $background-color $background-color $foreground-color; 48 | border-style: solid; 49 | border-width: $height $width; 50 | } @else if ($direction == inset-down) { 51 | border-color: $foreground-color $background-color $background-color; 52 | border-style: solid; 53 | border-width: $height $width; 54 | } @else if ($direction == inset-right) { 55 | border-color: $background-color $background-color $background-color $foreground-color; 56 | border-style: solid; 57 | border-width: $width $height; 58 | } @else if ($direction == inset-left) { 59 | border-color: $background-color $foreground-color $background-color $background-color; 60 | border-style: solid; 61 | border-width: $width $height; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /release-tracker-github.sh: -------------------------------------------------------------------------------- 1 | # Set the variables 2 | github_token="$GITHUB_TOKEN" 3 | point_release="0" 4 | pattern="point#([0-9]+)" 5 | 6 | # Get the file from the repository 7 | response=$(curl -sSL -H "Authorization: token $github_token" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/nasa/customapps-release-tracker/contents/release.json") 8 | release_json=$(echo $response | jq -r '.content' | base64 --decode) 9 | 10 | # Get the latest appdat commit message 11 | commit_message=$COMMIT_MESSAGE 12 | 13 | # Extract the number following "point#" 14 | point_release_number=$(echo $commit_message | grep -oP "$pattern" | grep -oP '[0-9]+') 15 | 16 | # Check if a point release number was found 17 | if [ -z "$point_release_number" ]; then 18 | echo "No point release number found in the commit message. Exiting script." 19 | exit 1 20 | else 21 | echo "Point Release Number: $point_release_number" 22 | fi 23 | 24 | # find app in release json that martches the appdat repo 25 | app=$(echo $release_json | jq -r --arg REPO_NAME "$REPO_NAME" '.[] | select(.name == $REPO_NAME)') 26 | 27 | # Get the current release number 28 | current_release_number=$(echo $app | jq -r '.release') 29 | 30 | # Split the release number into its parts 31 | IFS='.' read -r major minor patch point <<< "$current_release_number" 32 | 33 | # Increment the appropriate part of the release number 34 | case $point_release_number in 35 | 1) major=$((major+1));; 36 | 2) minor=$((minor+1));; 37 | 3) patch=$((patch+1));; 38 | 4) point=$((point+1));; 39 | *) echo "Invalid point release number. Exiting script."; exit 1;; 40 | esac 41 | 42 | # Construct the new release number 43 | new_release_number="${major}.${minor}.${patch}.${point}" 44 | 45 | # Update the app data in the release JSON 46 | updated_release_json=$(echo $release_json | jq --arg REPO_NAME "$REPO_NAME" --arg new_release_number "$new_release_number" '(.[] | select(.name == $REPO_NAME).release) |= $new_release_number') 47 | 48 | echo "Updated $REPO_NAME from $current_release_number to $new_release_number" 49 | 50 | # Define the commit parameters 51 | updated_content_base64=$(echo -n "$updated_release_json" | base64 -w 0) 52 | sha=$(echo $response | jq -r '.sha') 53 | commit_message="Update $REPO_NAME to $new_release_number" 54 | 55 | # Create commit 56 | commit_response=$(curl -sSL -X PUT -H "Authorization: token $github_token" \ 57 | -H "Accept: application/vnd.github.v3+json" \ 58 | -d "{\"message\": \"$commit_message\", \"content\": \"$updated_content_base64\", \"sha\": \"$sha\", \"branch\": \"main\"}" \ 59 | "https://api.github.com/repos/nasa/customapps-release-tracker/contents/release.json") 60 | 61 | 62 | # check if commit was successful 63 | if [ -z "$commit_response" ]; then 64 | echo "Commit failed. Exiting script." 65 | exit 1 66 | fi 67 | 68 | echo "Commit successful" 69 | exit 0 70 | -------------------------------------------------------------------------------- /assets/scss/lib/_bourbon.scss: -------------------------------------------------------------------------------- 1 | // Bourbon 4.2.7 2 | // http://bourbon.io 3 | // Copyright 2011-2015 thoughtbot, inc. 4 | // MIT License 5 | 6 | @import "settings/prefixer"; 7 | @import "settings/px-to-em"; 8 | @import "settings/asset-pipeline"; 9 | 10 | @import "functions/assign-inputs"; 11 | @import "functions/contains"; 12 | @import "functions/contains-falsy"; 13 | @import "functions/is-length"; 14 | @import "functions/is-light"; 15 | @import "functions/is-number"; 16 | @import "functions/is-size"; 17 | @import "functions/px-to-em"; 18 | @import "functions/px-to-rem"; 19 | @import "functions/shade"; 20 | @import "functions/strip-units"; 21 | @import "functions/tint"; 22 | @import "functions/transition-property-name"; 23 | @import "functions/unpack"; 24 | @import "functions/modular-scale"; 25 | 26 | @import "helpers/convert-units"; 27 | @import "helpers/directional-values"; 28 | @import "helpers/font-source-declaration"; 29 | @import "helpers/gradient-positions-parser"; 30 | @import "helpers/linear-angle-parser"; 31 | @import "helpers/linear-gradient-parser"; 32 | @import "helpers/linear-positions-parser"; 33 | @import "helpers/linear-side-corner-parser"; 34 | @import "helpers/radial-arg-parser"; 35 | @import "helpers/radial-positions-parser"; 36 | @import "helpers/radial-gradient-parser"; 37 | @import "helpers/render-gradients"; 38 | @import "helpers/shape-size-stripper"; 39 | @import "helpers/str-to-num"; 40 | 41 | @import "css3/animation"; 42 | @import "css3/appearance"; 43 | @import "css3/backface-visibility"; 44 | @import "css3/background"; 45 | @import "css3/background-image"; 46 | @import "css3/border-image"; 47 | @import "css3/calc"; 48 | @import "css3/columns"; 49 | @import "css3/filter"; 50 | @import "css3/flex-box"; 51 | @import "css3/font-face"; 52 | @import "css3/font-feature-settings"; 53 | @import "css3/hidpi-media-query"; 54 | @import "css3/hyphens"; 55 | @import "css3/image-rendering"; 56 | @import "css3/keyframes"; 57 | @import "css3/linear-gradient"; 58 | @import "css3/perspective"; 59 | @import "css3/placeholder"; 60 | @import "css3/radial-gradient"; 61 | @import "css3/selection"; 62 | @import "css3/text-decoration"; 63 | @import "css3/transform"; 64 | @import "css3/transition"; 65 | @import "css3/user-select"; 66 | 67 | @import "addons/border-color"; 68 | @import "addons/border-radius"; 69 | @import "addons/border-style"; 70 | @import "addons/border-width"; 71 | @import "addons/buttons"; 72 | @import "addons/clearfix"; 73 | @import "addons/ellipsis"; 74 | @import "addons/font-stacks"; 75 | @import "addons/hide-text"; 76 | @import "addons/margin"; 77 | @import "addons/padding"; 78 | @import "addons/position"; 79 | @import "addons/prefixer"; 80 | @import "addons/retina-image"; 81 | @import "addons/size"; 82 | @import "addons/text-inputs"; 83 | @import "addons/timing-functions"; 84 | @import "addons/triangle"; 85 | @import "addons/word-wrap"; 86 | 87 | @import "bourbon-deprecated-upcoming"; 88 | -------------------------------------------------------------------------------- /assets/scss/components/_search.scss: -------------------------------------------------------------------------------- 1 | $usa-btn-small-width: 4.5rem; 2 | $usa-btn-medium-width: 8.5rem; 3 | $usa-btn-big-width: 11.6rem; 4 | 5 | @mixin search-icon { 6 | background-image: url('#{$image-path}/search.png'); 7 | background-image: url('#{$image-path}/search.svg'); 8 | background-position: 50%; 9 | background-repeat: no-repeat; 10 | } 11 | 12 | .usa-search { 13 | @include clearfix; 14 | max-width: none; 15 | position: relative; 16 | 17 | [type=submit], 18 | .usa-search-submit { 19 | @include search-icon; 20 | border-bottom-left-radius: 0; 21 | border-top-left-radius: 0; 22 | height: 3.3rem; 23 | margin: 0; 24 | padding: 0; 25 | width: $usa-btn-small-width; 26 | 27 | @include media($small-screen) { 28 | background-image: none; 29 | width: $usa-btn-medium-width; 30 | } 31 | } 32 | 33 | &.usa-search-big { 34 | @include media($small-screen) { 35 | $height: 4.4rem; 36 | $width: $usa-btn-big-width; 37 | 38 | [type=search], 39 | .usa-search-input { 40 | font-size: $base-font-size; 41 | height: $height; 42 | width: calc(100% - #{$width}); 43 | } 44 | 45 | [type=submit], 46 | .usa-search-submit { 47 | font-size: $h3-font-size; 48 | height: $height; 49 | width: $width; 50 | } 51 | } 52 | } 53 | 54 | &.usa-search-small { 55 | @include media($small-screen) { 56 | $width: $usa-btn-small-width; 57 | 58 | [type=search], 59 | .usa-search-input { 60 | width: calc(100% - #{$width}); 61 | } 62 | 63 | [type=submit], 64 | .usa-search-submit { 65 | @include search-icon; 66 | width: $width; 67 | } 68 | } 69 | 70 | $lt-nav-width: $nav-width - 1px; 71 | 72 | @media screen and (max-width: $lt-nav-width) { 73 | &.usa-sr-only { 74 | left: auto; 75 | position: relative; 76 | } 77 | } 78 | } 79 | } 80 | 81 | // Extra specificity to override rules set in reset.css. 82 | input[type=search] { /* stylelint-disable-line selector-no-qualifying-type */ 83 | box-sizing: border-box; 84 | appearance: none; 85 | } 86 | 87 | [type=search], 88 | .usa-search-input { 89 | @include padding(0 null); 90 | border-bottom-right-radius: 0; 91 | border-right: none; 92 | border-top-right-radius: 0; 93 | box-sizing: border-box; 94 | float: left; 95 | font-size: $small-font-size; 96 | height: 3.3rem; 97 | margin: 0; 98 | width: calc(100% - #{$usa-btn-small-width}); 99 | 100 | @include media($small-screen) { 101 | width: calc(100% - #{$usa-btn-medium-width}); 102 | } 103 | } 104 | 105 | .usa-search-submit-text { 106 | @include sr-only; 107 | 108 | @include media($small-screen) { 109 | @include not-sr-only(); 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /assets/scss/components/_forms.scss: -------------------------------------------------------------------------------- 1 | $usa-form-width: 32rem; 2 | 3 | [type=submit] { 4 | @include media($medium-screen) { 5 | margin-top: calc(3rem - .2em); // Label margin minus input bottom margin 6 | } 7 | } 8 | 9 | fieldset { 10 | border: none; 11 | margin: 0; 12 | padding: 0; 13 | } 14 | 15 | .usa-form { 16 | @include media($medium-screen) { 17 | max-width: $usa-form-width; 18 | } 19 | } 20 | 21 | .usa-input-tiny { 22 | @include media($medium-screen) { 23 | max-width: 6rem; 24 | } 25 | } 26 | 27 | .usa-input-medium { 28 | @include media($medium-screen) { 29 | max-width: 12rem; 30 | } 31 | } 32 | 33 | .usa-form-note { 34 | float: right; 35 | font-family: $font-sans; 36 | font-size: $h5-font-size; 37 | margin: 0 0 1.5rem; 38 | 39 | + * { 40 | clear: both; 41 | } 42 | } 43 | 44 | .usa-form-large { 45 | @include media($medium-screen) { 46 | max-width: 46rem; 47 | } 48 | } 49 | 50 | .usa-input-grid { 51 | @include media($medium-screen) { 52 | padding-right: 5%; 53 | } 54 | } 55 | 56 | .usa-input-grid:last-of-type { 57 | @include media($medium-screen) { 58 | padding-right: 0; 59 | } 60 | } 61 | 62 | .usa-input-grid-small { 63 | @include media($medium-screen) { 64 | float: left; 65 | width: 35%; 66 | } 67 | 68 | input { 69 | margin-bottom: 3rem; 70 | } 71 | 72 | select { 73 | margin-bottom: 3rem; 74 | } 75 | } 76 | 77 | .usa-input-grid-medium { 78 | @include media($medium-screen) { 79 | float: left; 80 | width: 65%; 81 | } 82 | 83 | input { 84 | margin-bottom: 3rem; 85 | } 86 | 87 | select { 88 | margin-bottom: 3rem; 89 | } 90 | } 91 | 92 | .usa-input-grid-large { 93 | @include media($medium-screen) { 94 | float: left; 95 | width: 100%; 96 | } 97 | 98 | input { 99 | margin-bottom: 3rem; 100 | } 101 | 102 | select { 103 | margin-bottom: 3rem; 104 | } 105 | } 106 | 107 | .usa-additional_text { 108 | font-weight: normal; 109 | } 110 | 111 | // Reset password checklist 112 | 113 | .usa-checklist { 114 | list-style: none; 115 | margin-left: 0; 116 | padding-left: 0; 117 | 118 | li { 119 | display: inline-block; 120 | list-style: none; 121 | margin-bottom: 0; 122 | margin-top: 0; 123 | padding-left: 3em; 124 | text-indent: -2em; 125 | 126 | &::before { 127 | content: ' '; 128 | display: inline-block; 129 | height: .8em; 130 | margin-right: .2em; 131 | width: 1.8em; 132 | } 133 | } 134 | } 135 | 136 | .usa-checklist-checked { 137 | &::before { 138 | background-image: url('#{$image-path}/correct9.png'); 139 | background-image: url('#{$image-path}/correct9.svg'); 140 | background-position: 100%; 141 | background-repeat: no-repeat; 142 | background-size: 100%; 143 | } 144 | } 145 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_omega.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts. 4 | /// 5 | /// @param {List} $query [block] 6 | /// List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`). 7 | /// 8 | /// When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Note that composite arguments such as `2n+1` do not support this feature. 9 | /// 10 | /// **Deprecation warning**: The omega mixin will no longer take a `$direction` argument. To change the layout direction, use `row($direction)` or set `$default-layout-direction` instead. 11 | /// 12 | /// @example scss - Usage 13 | /// .element { 14 | /// @include omega; 15 | /// } 16 | /// 17 | /// .nth-element { 18 | /// @include omega(4n); 19 | /// } 20 | /// 21 | /// @example css - CSS Output 22 | /// .element { 23 | /// margin-right: 0; 24 | /// } 25 | /// 26 | /// .nth-element:nth-child(4n) { 27 | /// margin-right: 0; 28 | /// } 29 | /// 30 | /// .nth-element:nth-child(4n+1) { 31 | /// clear: left; 32 | /// } 33 | 34 | @mixin omega($query: block, $direction: default) { 35 | $table: belongs-to(table, $query); 36 | $auto: belongs-to(auto, $query); 37 | 38 | @if $direction != default { 39 | @include -neat-warn("The omega mixin will no longer take a $direction argument. To change the layout direction, use the direction(){...} mixin."); 40 | } @else { 41 | $direction: get-direction($layout-direction, $default-layout-direction); 42 | } 43 | 44 | @if $table { 45 | @include -neat-warn("The omega mixin no longer removes padding in table layouts."); 46 | } 47 | 48 | @if length($query) == 1 { 49 | @if $auto { 50 | &:last-child { 51 | margin-#{$direction}: 0; 52 | } 53 | } 54 | 55 | @else if contains-display-value($query) and $table == false { 56 | margin-#{$direction}: 0; 57 | } 58 | 59 | @else { 60 | @include nth-child($query, $direction); 61 | } 62 | } @else if length($query) == 2 { 63 | @if $auto { 64 | &:last-child { 65 | margin-#{$direction}: 0; 66 | } 67 | } @else { 68 | @include nth-child(nth($query, 1), $direction); 69 | } 70 | } @else { 71 | @include -neat-warn("Too many arguments passed to the omega() mixin."); 72 | } 73 | } 74 | 75 | @mixin nth-child($query, $direction) { 76 | $opposite-direction: get-opposite-direction($direction); 77 | 78 | &:nth-child(#{$query}) { 79 | margin-#{$direction}: 0; 80 | } 81 | 82 | @if type-of($query) == number and unit($query) == "n" { 83 | &:nth-child(#{$query}+1) { 84 | clear: $opposite-direction; 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /assets/scss/lib/grid/_media.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Outputs a media-query block with an optional grid context (the total number of columns used in the grid). 4 | /// 5 | /// @param {List} $query 6 | /// A list of media query features and values, where each `$feature` should have a corresponding `$value`. 7 | /// For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). 8 | /// 9 | /// If there is only a single `$value` in `$query`, `$default-feature` is going to be used. 10 | /// 11 | /// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). 12 | /// 13 | /// 14 | /// @param {Number (unitless)} $total-columns [$grid-columns] 15 | /// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. 16 | /// 17 | /// @example scss - Usage 18 | /// .responsive-element { 19 | /// @include media(769px) { 20 | /// @include span-columns(6); 21 | /// } 22 | /// } 23 | /// 24 | /// .new-context-element { 25 | /// @include media(min-width 320px max-width 480px, 6) { 26 | /// @include span-columns(6); 27 | /// } 28 | /// } 29 | /// 30 | /// @example css - CSS Output 31 | /// @media screen and (min-width: 769px) { 32 | /// .responsive-element { 33 | /// display: block; 34 | /// float: left; 35 | /// margin-right: 2.35765%; 36 | /// width: 48.82117%; 37 | /// } 38 | /// 39 | /// .responsive-element:last-child { 40 | /// margin-right: 0; 41 | /// } 42 | /// } 43 | /// 44 | /// @media screen and (min-width: 320px) and (max-width: 480px) { 45 | /// .new-context-element { 46 | /// display: block; 47 | /// float: left; 48 | /// margin-right: 4.82916%; 49 | /// width: 100%; 50 | /// } 51 | /// 52 | /// .new-context-element:last-child { 53 | /// margin-right: 0; 54 | /// } 55 | /// } 56 | 57 | @mixin media($query: $feature $value $columns, $total-columns: $grid-columns) { 58 | @if length($query) == 1 { 59 | @media screen and ($default-feature: nth($query, 1)) { 60 | $default-grid-columns: $grid-columns; 61 | $grid-columns: $total-columns !global; 62 | @content; 63 | $grid-columns: $default-grid-columns !global; 64 | } 65 | } @else { 66 | $loop-to: length($query); 67 | $media-query: "screen and "; 68 | $default-grid-columns: $grid-columns; 69 | $grid-columns: $total-columns !global; 70 | 71 | @if is-not(is-even(length($query))) { 72 | $grid-columns: nth($query, $loop-to) !global; 73 | $loop-to: $loop-to - 1; 74 | } 75 | 76 | $i: 1; 77 | @while $i <= $loop-to { 78 | $media-query: $media-query + "(" + nth($query, $i) + ": " + nth($query, $i + 1) + ") "; 79 | 80 | @if ($i + 1) != $loop-to { 81 | $media-query: $media-query + "and "; 82 | } 83 | 84 | $i: $i + 2; 85 | } 86 | 87 | @media #{$media-query} { 88 | @content; 89 | $grid-columns: $default-grid-columns !global; 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /assets/scss/lib/helpers/_directional-values.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Directional-property mixins are shorthands for writing properties like the following 4 | /// 5 | /// @ignore You can also use `false` instead of `null`. 6 | /// 7 | /// @param {List} $vals 8 | /// List of directional values 9 | /// 10 | /// @example scss - Usage 11 | /// .element { 12 | /// @include border-style(dotted null); 13 | /// @include margin(null 0 10px); 14 | /// } 15 | /// 16 | /// @example css - CSS Output 17 | /// .element { 18 | /// border-bottom-style: dotted; 19 | /// border-top-style: dotted; 20 | /// margin-bottom: 10px; 21 | /// margin-left: 0; 22 | /// margin-right: 0; 23 | /// } 24 | /// 25 | /// @require {function} contains-falsy 26 | /// 27 | /// @return {List} 28 | 29 | @function collapse-directionals($vals) { 30 | $output: null; 31 | 32 | $a: nth($vals, 1); 33 | $b: if(length($vals) < 2, $a, nth($vals, 2)); 34 | $c: if(length($vals) < 3, $a, nth($vals, 3)); 35 | $d: if(length($vals) < 2, $a, nth($vals, if(length($vals) < 4, 2, 4))); 36 | 37 | @if $a == 0 { $a: 0; } 38 | @if $b == 0 { $b: 0; } 39 | @if $c == 0 { $c: 0; } 40 | @if $d == 0 { $d: 0; } 41 | 42 | @if $a == $b and $a == $c and $a == $d { $output: $a; } 43 | @else if $a == $c and $b == $d { $output: $a $b; } 44 | @else if $b == $d { $output: $a $b $c; } 45 | @else { $output: $a $b $c $d; } 46 | 47 | @return $output; 48 | } 49 | 50 | /// Output directional properties, for instance `margin`. 51 | /// 52 | /// @access private 53 | /// 54 | /// @param {String} $pre 55 | /// Prefix to use 56 | /// @param {String} $suf 57 | /// Suffix to use 58 | /// @param {List} $vals 59 | /// List of values 60 | /// 61 | /// @require {function} collapse-directionals 62 | /// @require {function} contains-falsy 63 | 64 | @mixin directional-property($pre, $suf, $vals) { 65 | // Property Names 66 | $top: $pre + "-top" + if($suf, "-#{$suf}", ""); 67 | $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", ""); 68 | $left: $pre + "-left" + if($suf, "-#{$suf}", ""); 69 | $right: $pre + "-right" + if($suf, "-#{$suf}", ""); 70 | $all: $pre + if($suf, "-#{$suf}", ""); 71 | 72 | $vals: collapse-directionals($vals); 73 | 74 | @if contains-falsy($vals) { 75 | @if nth($vals, 1) { #{$top}: nth($vals, 1); } 76 | 77 | @if length($vals) == 1 { 78 | @if nth($vals, 1) { #{$right}: nth($vals, 1); } 79 | } @else { 80 | @if nth($vals, 2) { #{$right}: nth($vals, 2); } 81 | } 82 | 83 | @if length($vals) == 2 { 84 | @if nth($vals, 1) { #{$bottom}: nth($vals, 1); } 85 | @if nth($vals, 2) { #{$left}: nth($vals, 2); } 86 | } @else if length($vals) == 3 { 87 | @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } 88 | @if nth($vals, 2) { #{$left}: nth($vals, 2); } 89 | } @else if length($vals) == 4 { 90 | @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } 91 | @if nth($vals, 4) { #{$left}: nth($vals, 4); } 92 | } 93 | } @else { 94 | #{$all}: $vals; 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /assets/footer/OIT-footer.html: -------------------------------------------------------------------------------- 1 | 2 | 58 | -------------------------------------------------------------------------------- /assets/js/setup.js: -------------------------------------------------------------------------------- 1 | function setupPage() { 2 | var temp = $("#headerSearch"); 3 | var added = $(""); 4 | $(added).find("a").keydown(arrowThruTabsHeader); 5 | added.appendTo(temp); 6 | added = $(""); 7 | $(added).find("a").keydown(arrowThruTabsHeader); 8 | added.appendTo(temp); 9 | added = $(""); 10 | $(added).find("a").keydown(arrowThruTabsHeader); 11 | added.appendTo(temp); 12 | added = $(""); 13 | $(added).find("a").keydown(arrowThruTabsHeader); 14 | added.appendTo(temp); 15 | added = $(""); 16 | $(added).find("a").keydown(arrowThruTabsHeader); 17 | added.appendTo(temp); 18 | var dio = $("#myHeader"); //you thought this variable would be named "header", but it was I, DIO 19 | dio.addClass("sticky"); 20 | insertFooterHere("main-content"); 21 | $("#infoPic2").on("mouseenter", function(){displayHelp(true, 'infoTab2');}) 22 | .on("mouseout", function(){displayHelp(false, 'infoTab2');}) 23 | .on("focusin", function(){displayHelp(true, 'infoTab2')}) 24 | .on("focusout", function(){displayHelp(false, 'infoTab2')}); 25 | 26 | var checkDivMove = false; 27 | window.onresize = function(){ 28 | if (window.innerWidth < 951){ 29 | if(checkDivMove == false){ 30 | $("#headerForm").insertBefore($("#headerContent")); 31 | } 32 | checkDivMove = true; 33 | } 34 | else { 35 | if(checkDivMove == true){ 36 | $("#headerContent").insertBefore($("#headerForm")); 37 | } 38 | checkDivMove = false; 39 | } 40 | }; 41 | $("#headerContent").children().eq(0).children().addClass("currentDiv"); 42 | window.onscroll = function(){ 43 | highlightMenu(); 44 | }; 45 | 46 | var isChromium = window.chrome; 47 | var winNav = window.navigator; 48 | var vendorName = winNav.vendor; 49 | var isOpera = typeof window.opr !== "undefined"; 50 | var isIEedge = winNav.userAgent.indexOf("Edge") > -1; 51 | var isIOSChrome = winNav.userAgent.match("CriOS"); 52 | 53 | if (isIOSChrome) { 54 | var style = document.createElement('style'); 55 | document.head.appendChild(style); 56 | style.sheet.insertRule('@media screen and (min-width: 1026px){.usa-nav{padding-top: 4.5rem !important;}}'); 57 | } else if( 58 | isChromium !== null && 59 | typeof isChromium !== "undefined" && 60 | vendorName === "Google Inc." && 61 | isOpera === false && 62 | isIEedge === false 63 | ) { 64 | var style = document.createElement('style'); 65 | document.head.appendChild(style); 66 | style.sheet.insertRule('@media screen and (min-width: 1002px){.usa-nav{padding-top: 4.5rem !important;}}'); 67 | } 68 | document.getElementById("search-field-big").addEventListener("keydown", toSearchResults); 69 | document.getElementById("basic-search-field-small").addEventListener("keydown", toSearchResultsHeader); 70 | 71 | }; --------------------------------------------------------------------------------