diff --git a/aio/content/examples/.eslintrc.json b/aio/content/examples/.eslintrc.json index b1b25254dc0..e77999f90ac 100644 --- a/aio/content/examples/.eslintrc.json +++ b/aio/content/examples/.eslintrc.json @@ -13,12 +13,12 @@ "plugin:@angular-eslint/template/recommended" ], "rules": { - "@angular-eslint/template/accessibility-alt-text": "off", // TODO: Fix the code violating this rule and enable it. - "@angular-eslint/template/accessibility-elements-content": "off", // TODO: Fix the code violating this rule and enable it. - "@angular-eslint/template/accessibility-label-has-associated-control": "off", // TODO: Fix the code violating this rule and enable it. + "@angular-eslint/template/accessibility-alt-text": "error", + "@angular-eslint/template/accessibility-elements-content": "error", + "@angular-eslint/template/accessibility-label-has-associated-control": "error", "@angular-eslint/template/accessibility-table-scope": "error", "@angular-eslint/template/accessibility-valid-aria": "error", - "@angular-eslint/template/click-events-have-key-events": "off", // TODO: Fix the code violating this rule and enable it. + "@angular-eslint/template/click-events-have-key-events": "error", "@angular-eslint/template/eqeqeq": "off", "@angular-eslint/template/mouse-events-have-key-events": "error", "@angular-eslint/template/no-autofocus": "error", diff --git a/aio/content/examples/ajs-quick-reference/src/app/app.component.html b/aio/content/examples/ajs-quick-reference/src/app/app.component.html index 82eaf9339b2..25f5c72ecf2 100644 --- a/aio/content/examples/ajs-quick-reference/src/app/app.component.html +++ b/aio/content/examples/ajs-quick-reference/src/app/app.component.html @@ -51,7 +51,7 @@

- +
diff --git a/aio/content/examples/ajs-quick-reference/src/app/movie-list.component.html b/aio/content/examples/ajs-quick-reference/src/app/movie-list.component.html index e1ee6d62c5a..e7d736eba0c 100644 --- a/aio/content/examples/ajs-quick-reference/src/app/movie-list.component.html +++ b/aio/content/examples/ajs-quick-reference/src/app/movie-list.component.html @@ -61,6 +61,7 @@ [style.height.px]="50" [style.margin.px]="2" [src]="movie.imageurl" + [alt]="movie.title" [title]="movie.title"> {{movie.title}} diff --git a/aio/content/examples/animations/src/app/hero-list-auto.component.html b/aio/content/examples/animations/src/app/hero-list-auto.component.html index bb99794f0c0..72624e54858 100644 --- a/aio/content/examples/animations/src/app/hero-list-auto.component.html +++ b/aio/content/examples/animations/src/app/hero-list-auto.component.html @@ -1,9 +1,9 @@ \ No newline at end of file + diff --git a/aio/content/examples/animations/src/app/hero-list-enter-leave.component.ts b/aio/content/examples/animations/src/app/hero-list-enter-leave.component.ts index 769bb6db303..a867c5edb90 100644 --- a/aio/content/examples/animations/src/app/hero-list-enter-leave.component.ts +++ b/aio/content/examples/animations/src/app/hero-list-enter-leave.component.ts @@ -19,11 +19,11 @@ import { Hero } from './hero'; template: ` `, diff --git a/aio/content/examples/animations/src/app/hero-list-groups.component.ts b/aio/content/examples/animations/src/app/hero-list-groups.component.ts index a07cd813208..f08e2fa7da5 100644 --- a/aio/content/examples/animations/src/app/hero-list-groups.component.ts +++ b/aio/content/examples/animations/src/app/hero-list-groups.component.ts @@ -19,12 +19,11 @@ import { Hero } from './hero'; selector: 'app-hero-list-groups', template: ` `, @@ -33,7 +32,7 @@ import { Hero } from './hero'; animations: [ trigger('flyInOut', [ state('in', style({ - width: 120, + width: '*', transform: 'translateX(0)', opacity: 1 })), transition(':enter', [ @@ -41,7 +40,7 @@ import { Hero } from './hero'; group([ animate('0.3s 0.1s ease', style({ transform: 'translateX(0)', - width: 120 + width: '*' })), animate('0.3s ease', style({ opacity: 1 diff --git a/aio/content/examples/animations/src/app/hero-list-page.component.css b/aio/content/examples/animations/src/app/hero-list-page.component.css index 3a3e603cbce..d06d58bf148 100644 --- a/aio/content/examples/animations/src/app/hero-list-page.component.css +++ b/aio/content/examples/animations/src/app/hero-list-page.component.css @@ -1,25 +1,56 @@ .heroes { + margin: 0 0 2em 0; list-style-type: none; padding: 0; + width: 15em; } .heroes li { - overflow:hidden; - margin: .5em 0; + display: flex; + align-items: center; + width: 100%; + overflow: hidden; } -.heroes li > .inner { - cursor: pointer; +.heroes .inner { + flex: 1; background-color: #EEE; - padding: .3rem 0; - height: 1.6rem; + margin: .5em; + padding: 0; border-radius: 4px; + display: flex; + align-items: stretch; } -.heroes li:hover > .inner { - color: black; - background-color: #DDD; - transform: translateX(.1em); +.heroes button.inner { + cursor: pointer; + font-size: inherit; +} + +.heroes button.inner:hover { + color: #2c3a41; + background-color: #e6e6e6; + left: .1em; +} + +.heroes button.inner:active { + background-color: #525252; + color: #fafafa; +} + +.heroes button.inner.selected { + background-color: black; + color: white; +} + +.heroes button.inner.selected:hover { + background-color: #505050; + color: white; +} + +.heroes button.inner.selected:active { + background-color: black; + color: white; } .heroes .badge { @@ -27,17 +58,17 @@ font-size: small; color: white; padding: 0.8em 0.7em 0 0.7em; - background-color: #3d5157; - position: relative; - left: -1px; - top: -4px; - height: 1.8em; - min-width: 16px; - text-align: right; + background-color: #405061; + line-height: 1em; margin-right: .8em; border-radius: 4px 0 0 4px; } +.heroes .name { + min-width: max-content; + padding: 0.5rem 0; +} + label { display: block; padding-bottom: .5rem; diff --git a/aio/content/examples/animations/src/app/hero-list-page.component.html b/aio/content/examples/animations/src/app/hero-list-page.component.html index d8b718e597e..b6b2af8e426 100644 --- a/aio/content/examples/animations/src/app/hero-list-page.component.html +++ b/aio/content/examples/animations/src/app/hero-list-page.component.html @@ -11,7 +11,7 @@
  • {{ hero.id }} - {{ hero.name }} + {{ hero.name }}
  • diff --git a/aio/content/examples/architecture/src/app/hero-list.component.1.html b/aio/content/examples/architecture/src/app/hero-list.component.1.html index 9533a287bc7..dd62ae56cdb 100644 --- a/aio/content/examples/architecture/src/app/hero-list.component.1.html +++ b/aio/content/examples/architecture/src/app/hero-list.component.1.html @@ -1,7 +1,8 @@ -
  • {{hero.name}}
  • -
  • + diff --git a/aio/content/examples/architecture/src/app/hero-list.component.html b/aio/content/examples/architecture/src/app/hero-list.component.html index a14717ca7f6..e673ba18a8b 100644 --- a/aio/content/examples/architecture/src/app/hero-list.component.html +++ b/aio/content/examples/architecture/src/app/hero-list.component.html @@ -3,8 +3,10 @@

    Select a hero from the list to see details.

    diff --git a/aio/content/examples/architecture/src/assets/architecture.css b/aio/content/examples/architecture/src/assets/architecture.css index 8fd83cfd935..9e8651ad075 100644 --- a/aio/content/examples/architecture/src/assets/architecture.css +++ b/aio/content/examples/architecture/src/assets/architecture.css @@ -4,13 +4,21 @@ ul { li { list-style-type: none; - padding: 1rem; - background-color: aliceblue; border: 1px solid #444; margin-bottom: .5rem; + display: flex; } -li:hover { +li button { + background-color: aliceblue; + flex: 1; + padding: 1rem; + margin: 0; + text-align: left; + border-radius: 0; +} + +li button:hover, li button:active { background-color: #444; color: white; cursor: pointer; diff --git a/aio/content/examples/docs-style-guide/src/app/app.component.css b/aio/content/examples/docs-style-guide/src/app/app.component.css index cc999f8458a..64a67e026fa 100644 --- a/aio/content/examples/docs-style-guide/src/app/app.component.css +++ b/aio/content/examples/docs-style-guide/src/app/app.component.css @@ -7,45 +7,68 @@ } /* #enddocregion heroes */ +.heroes { + margin: 0 0 2em 0; + list-style-type: none; + padding: 0; + width: 15em; +} .heroes li { + display: flex; +} + +.heroes button { + flex: 1; cursor: pointer; position: relative; left: 0; background-color: #EEE; margin: .5em; - padding: .3em 0; + padding: 0; height: 1.6em; border-radius: 4px; + display: flex; + align-items: stretch; + height: 1.8em; } -.heroes li.selected:hover { - background-color: #BBD8DC !important; - color: white; -} -.heroes li:hover { - color: #607D8B; - background-color: #DDD; + +.heroes button:hover { + color: #2c3a41; + background-color: #e6e6e6; left: .1em; } -.heroes .text { - position: relative; - top: -3px; + +.heroes button:active { + background-color: #525252; + color: #fafafa; } + +.heroes button.selected { + background-color: black; + color: white; +} + +.heroes button.selected:hover { + background-color: #505050; + color: white; +} + +.heroes button.selected:active { + background-color: black; + color: white; +} + .heroes .badge { display: inline-block; font-size: small; color: white; padding: 0.8em 0.7em 0 0.7em; - background-color: #607D8B; + background-color: #405061; line-height: 1em; - position: relative; - left: -1px; - top: -4px; - height: 1.8em; margin-right: .8em; border-radius: 4px 0 0 4px; } -.selected { - background-color: #CFD8DC !important; - color: white; +.heroes .name { + align-self: center; } diff --git a/aio/content/examples/docs-style-guide/src/app/app.component.html b/aio/content/examples/docs-style-guide/src/app/app.component.html index 9a96640214c..c0ca206e5cd 100644 --- a/aio/content/examples/docs-style-guide/src/app/app.component.html +++ b/aio/content/examples/docs-style-guide/src/app/app.component.html @@ -1,17 +1,19 @@

    {{title}}

    My Heroes

    {{selectedHero.name}} details!

    -
    {{selectedHero.id}}
    +
    id: {{selectedHero.id}}
    - - +
    diff --git a/aio/content/examples/event-binding/src/app/app.component.html b/aio/content/examples/event-binding/src/app/app.component.html index f5387f6f2ab..c9b4f6a9235 100644 --- a/aio/content/examples/event-binding/src/app/app.component.html +++ b/aio/content/examples/event-binding/src/app/app.component.html @@ -34,6 +34,9 @@

    Click to see event target class:

    + + +
    Click me (parent)
    Click me too! (child)
    @@ -47,3 +50,5 @@
    + + diff --git a/aio/content/examples/event-binding/src/app/item-detail/item-detail.component.html b/aio/content/examples/event-binding/src/app/item-detail/item-detail.component.html index 0cd2c197207..314d4a902c0 100644 --- a/aio/content/examples/event-binding/src/app/item-detail/item-detail.component.html +++ b/aio/content/examples/event-binding/src/app/item-detail/item-detail.component.html @@ -1,7 +1,7 @@

    This is the ItemDetailComponent

    - + {{item.name}} {{ item.name }} diff --git a/aio/content/examples/hierarchical-dependency-injection/e2e/src/app.e2e-spec.ts b/aio/content/examples/hierarchical-dependency-injection/e2e/src/app.e2e-spec.ts index 438adeb81b7..ccf31b92f7d 100644 --- a/aio/content/examples/hierarchical-dependency-injection/e2e/src/app.e2e-spec.ts +++ b/aio/content/examples/hierarchical-dependency-injection/e2e/src/app.e2e-spec.ts @@ -10,7 +10,7 @@ describe('Hierarchical dependency injection', () => { income: '', // queries - heroEl: element.all(by.css('app-heroes-list li')).get(0), // first hero + heroEl: element.all(by.css('app-heroes-list li button')).get(0), // first hero heroCardEl: element(by.css('app-heroes-list app-hero-tax-return')), // first hero tax-return taxReturnNameEl: element.all(by.css('app-heroes-list app-hero-tax-return #name')).get(0), incomeInputEl: element.all(by.css('app-heroes-list app-hero-tax-return input')).get(0), diff --git a/aio/content/examples/hierarchical-dependency-injection/src/app/hero-tax-return.component.html b/aio/content/examples/hierarchical-dependency-injection/src/app/hero-tax-return.component.html index ebf2dcbaaa7..50bbff9ab46 100644 --- a/aio/content/examples/hierarchical-dependency-injection/src/app/hero-tax-return.component.html +++ b/aio/content/examples/hierarchical-dependency-injection/src/app/hero-tax-return.component.html @@ -2,7 +2,7 @@
    {{message}}
    {{taxReturn.name}} - + TID: {{taxReturn.tid}}
    - + Tax: {{taxReturn.tax}}
    diff --git a/aio/content/examples/hierarchical-dependency-injection/src/app/heroes-list.component.ts b/aio/content/examples/hierarchical-dependency-injection/src/app/heroes-list.component.ts index 093e8a0dac7..1a0f852b9a3 100644 --- a/aio/content/examples/hierarchical-dependency-injection/src/app/heroes-list.component.ts +++ b/aio/content/examples/hierarchical-dependency-injection/src/app/heroes-list.component.ts @@ -11,8 +11,8 @@ import { HeroesService } from './heroes.service';

    Hero Tax Returns

      -
    • {{hero.name}} +
    • +
    `, - styles: [ 'li {cursor: pointer;}' ] + styles: [` + li button { + font-size: inherit; + margin: 0.3rem; + padding: 0.5rem; + } + `] }) export class HeroesListComponent { heroes: Observable; diff --git a/aio/content/examples/http/src/app/heroes/heroes.component.css b/aio/content/examples/http/src/app/heroes/heroes.component.css index a728e26746f..d5a402a0397 100644 --- a/aio/content/examples/http/src/app/heroes/heroes.component.css +++ b/aio/content/examples/http/src/app/heroes/heroes.component.css @@ -9,21 +9,20 @@ } .heroes li { - position: relative; + display: flex; + width: 100%; } .heroes li:hover { left: .1em; } -.heroes a { +.heroes button.delete { color: black; display: block; font-size: 1.2rem; background-color: #eee; - margin: .5em 0; - padding: .5em 0; - border-radius: 4px; + border-radius: 0 4px 4px 0; } .heroes a:hover { @@ -40,8 +39,18 @@ border-radius: 4px 0 0 4px; } +.heroes button.edit { + flex: 1; + text-align: left; + padding: 0; + margin-right: 0; + display: flex; + align-items: center; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + button.delete { - position: absolute; right: -8px; top: 5px; background-color: gray; @@ -53,6 +62,4 @@ button.delete { .heroes input { max-width: 12rem; padding: .25rem; - position: absolute; - top: 8px; } diff --git a/aio/content/examples/http/src/app/heroes/heroes.component.html b/aio/content/examples/http/src/app/heroes/heroes.component.html index bc470badae7..4d7d602e032 100644 --- a/aio/content/examples/http/src/app/heroes/heroes.component.html +++ b/aio/content/examples/http/src/app/heroes/heroes.component.html @@ -14,7 +14,7 @@
    • - +
    • diff --git a/aio/content/examples/i18n/doc-files/app.component.html b/aio/content/examples/i18n/doc-files/app.component.html index 5e7db6b4b26..1e5da1744cc 100644 --- a/aio/content/examples/i18n/doc-files/app.component.html +++ b/aio/content/examples/i18n/doc-files/app.component.html @@ -27,11 +27,11 @@ - +Angular logo

      Hello

      Good bye

      - \ No newline at end of file + diff --git a/aio/content/examples/i18n/src/app/app.component.html b/aio/content/examples/i18n/src/app/app.component.html index f7b68a9f761..4ccad73250f 100644 --- a/aio/content/examples/i18n/src/app/app.component.html +++ b/aio/content/examples/i18n/src/app/app.component.html @@ -10,7 +10,7 @@
      - +Angular logo
      diff --git a/aio/content/examples/interpolation/src/app/app.component.html b/aio/content/examples/interpolation/src/app/app.component.html index 4a0ed186f28..f9540c31d2a 100644 --- a/aio/content/examples/interpolation/src/app/app.component.html +++ b/aio/content/examples/interpolation/src/app/app.component.html @@ -11,7 +11,7 @@

      {{title}}

      -
      +
      item

      Evaluating template expressions

      @@ -35,7 +35,7 @@

      Component context, properties of app.component.ts:

      {{recommended}}

      - + item 2
    diff --git a/aio/content/examples/lifecycle-hooks/src/app/app.component.html b/aio/content/examples/lifecycle-hooks/src/app/app.component.html index 93309da4fd9..c0fb2da8ffc 100644 --- a/aio/content/examples/lifecycle-hooks/src/app/app.component.html +++ b/aio/content/examples/lifecycle-hooks/src/app/app.component.html @@ -1,5 +1,4 @@ - -

    Lifecycle Hooks

    +

    Lifecycle Hooks

    Peek-a-boo: (most) lifecycle hooks Spy: directive with OnInit & OnDestroy OnChanges @@ -8,36 +7,29 @@ AfterContentInit & AfterContentChecked Counter: OnChanges + Spy directive - - + back to top
    - - + back to top
    - - + back to top
    - - + back to top
    - - + back to top
    - - + back to top
    - - + back to top diff --git a/aio/content/examples/lifecycle-hooks/src/app/do-check-parent.component.html b/aio/content/examples/lifecycle-hooks/src/app/do-check-parent.component.html index c29c6fb7a79..334c1f83dd8 100644 --- a/aio/content/examples/lifecycle-hooks/src/app/do-check-parent.component.html +++ b/aio/content/examples/lifecycle-hooks/src/app/do-check-parent.component.html @@ -1,5 +1,5 @@

    {{title}}

    -