diff --git a/lib/src/html/template_data.dart b/lib/src/html/template_data.dart
index 271ce70..7f25e2a 100644
--- a/lib/src/html/template_data.dart
+++ b/lib/src/html/template_data.dart
@@ -283,64 +283,64 @@
 class MethodTemplateData extends TemplateData<Method> {
   final Library library;
   final Method method;
-  final Container clazz;
-  String container;
+  final Container container;
+  String containerDesc;
 
   MethodTemplateData(HtmlOptions htmlOptions, PackageGraph packageGraph,
-      this.library, this.clazz, this.method)
+      this.library, this.container, this.method)
       : super(htmlOptions, packageGraph) {
-    container = clazz.isClass ? 'class' : 'extension';
+    containerDesc = container.isClass ? 'class' : 'extension';
   }
 
   @override
   Method get self => method;
   @override
-  String get title => '${method.name} method - ${clazz.name} ${container} - '
+  String get title => '${method.name} method - ${container.name} ${containerDesc} - '
       '${library.name} library - Dart API';
   @override
   String get layoutTitle => _layoutTitle(
       method.nameWithGenerics, method.fullkind, method.isDeprecated);
   @override
   String get metaDescription =>
-      'API docs for the ${method.name} method from the ${clazz.name} ${container}, '
+      'API docs for the ${method.name} method from the ${container.name} ${containerDesc}, '
       'for the Dart programming language.';
   @override
   List get navLinks => [packageGraph.defaultPackage, library];
   @override
-  List get navLinksWithGenerics => [clazz];
+  List get navLinksWithGenerics => [container];
   @override
   String get htmlBase => '../..';
 }
 
 class PropertyTemplateData extends TemplateData<Field> {
   final Library library;
-  final Container clazz;
+  final Container container;
   final Field property;
-  String container;
+  String containerDesc;
 
   PropertyTemplateData(HtmlOptions htmlOptions, PackageGraph packageGraph,
-      this.library, this.clazz, this.property)
+      this.library, this.container, this.property)
       : super(htmlOptions, packageGraph) {
-    container = clazz.isClass ? 'class' : 'extension';
+    containerDesc = container.isClass ? 'class' : 'extension';
   }
 
   @override
   Field get self => property;
 
   @override
-  String get title => '${property.name} $type - ${clazz.name} ${container} - '
+  String get title => '${property.name} $type - ${container.name} ${containerDesc} - '
       '${library.name} library - Dart API';
   @override
   String get layoutTitle =>
       _layoutTitle(property.name, type, property.isDeprecated);
   @override
   String get metaDescription =>
-      'API docs for the ${property.name} $type from the ${clazz.name} ${container}, '
+      'API docs for the ${property.name} $type from the ${container.name} ${containerDesc}, '
       'for the Dart programming language.';
   @override
   List get navLinks => [packageGraph.defaultPackage, library];
   @override
-  List get navLinksWithGenerics => [clazz];
+  List get navLinksWithGenerics => [container];
   @override
   String get htmlBase => '../..';
 
@@ -349,8 +349,8 @@
 
 class ConstantTemplateData extends PropertyTemplateData {
   ConstantTemplateData(HtmlOptions htmlOptions, PackageGraph packageGraph,
-      Library library, Container clazz, Field property)
-      : super(htmlOptions, packageGraph, library, clazz, property);
+      Library library, Container container, Field property)
+      : super(htmlOptions, packageGraph, library, container, property);
 
   @override
   String get type => 'constant';
diff --git a/lib/src/html/templates.dart b/lib/src/html/templates.dart
index aa78da0..a47efde 100644
--- a/lib/src/html/templates.dart
+++ b/lib/src/html/templates.dart
@@ -31,6 +31,7 @@
   'search_sidebar',
   'sidebar_for_class',
   'sidebar_for_category',
+  'sidebar_for_container',
   'sidebar_for_enum',
   'sidebar_for_extension',
   'source_code',
diff --git a/lib/templates/_sidebar_for_class.html b/lib/templates/_sidebar_for_class.html
index d0b1bb0..662ec17 100644
--- a/lib/templates/_sidebar_for_class.html
+++ b/lib/templates/_sidebar_for_class.html
@@ -1,7 +1,6 @@
 <ol>
   {{#clazz}}
 
-  {{#isClass}}
   {{#hasPublicConstructors}}
   <li class="section-title"><a href="{{{href}}}#constructors">Constructors</a></li>
   {{#publicConstructors}}
@@ -52,52 +51,6 @@
   <li>{{{linkedName}}}</li>
   {{/publicConstants}}
   {{/hasPublicConstants}}
-  {{/isClass}}
-
-  {{#isExtension}}
-  {{#hasPublicProperties}}
-  <li class="section-title"> <a href="{{{href}}}#instance-properties">Properties</a>
-  </li>
-  {{#allPublicInstanceProperties}}
-  <li>{{{ linkedName }}}</li>
-  {{/allPublicInstanceProperties}}
-  {{/hasPublicProperties}}
-
-  {{#hasPublicMethods}}
-  <li class="section-title"><a href="{{{href}}}#instance-methods">Methods</a></li>
-  {{#allPublicInstanceMethods}}
-  <li>{{{ linkedName }}}</li>
-  {{/allPublicInstanceMethods}}
-  {{/hasPublicMethods}}
-
-  {{#hasPublicOperators}}
-  <li class="section-title"><a href="{{{href}}}#operators">Operators</a></li>
-  {{#allPublicOperators}}
-  <li>{{{ linkedName }}}</li>
-  {{/allPublicOperators}}
-  {{/hasPublicOperators}}
-
-  {{#hasPublicStaticProperties}}
-  <li class="section-title"><a href="{{{href}}}#static-properties">Static properties</a></li>
-  {{#publicStaticProperties}}
-  <li>{{{ linkedName }}}</li>
-  {{/publicStaticProperties}}
-  {{/hasPublicStaticProperties}}
-
-  {{#hasPublicStaticMethods}}
-  <li class="section-title"><a href="{{{href}}}#static-methods">Static methods</a></li>
-  {{#publicStaticMethods}}
-  <li>{{{ linkedName }}}</li>
-  {{/publicStaticMethods}}
-  {{/hasPublicStaticMethods}}
-
-  {{#hasPublicConstants}}
-  <li class="section-title"><a href="{{{href}}}#constants">Constants</a></li>
-  {{#publicConstants}}
-  <li>{{{linkedName}}}</li>
-  {{/publicConstants}}
-  {{/hasPublicConstants}}
-  {{/isExtension}}
 
   {{/clazz}}
 </ol>
diff --git a/lib/templates/_sidebar_for_container.html b/lib/templates/_sidebar_for_container.html
new file mode 100644
index 0000000..3c3b316
--- /dev/null
+++ b/lib/templates/_sidebar_for_container.html
@@ -0,0 +1,103 @@
+<ol>
+    {{#container}}
+
+    {{#isClass}}
+    {{#hasPublicConstructors}}
+    <li class="section-title"><a href="{{{href}}}#constructors">Constructors</a></li>
+    {{#publicConstructors}}
+    <li><a{{#isDeprecated}} class="deprecated"{{/isDeprecated}} href="{{{href}}}">{{shortName}}</a></li>
+    {{/publicConstructors}}
+    {{/hasPublicConstructors}}
+
+    {{#hasPublicProperties}}
+    <li class="section-title{{ #allPublicInstancePropertiesInherited }} inherited{{ /allPublicInstancePropertiesInherited }}">
+        <a href="{{{href}}}#instance-properties">Properties</a>
+    </li>
+    {{#allPublicInstanceProperties}}
+    <li{{ #isInherited }} class="inherited"{{ /isInherited}}>{{{ linkedName }}}</li>
+    {{/allPublicInstanceProperties}}
+    {{/hasPublicProperties}}
+
+    {{#hasPublicMethods}}
+    <li class="section-title{{ #allPublicInstanceMethodsInherited }} inherited{{ /allPublicInstanceMethodsInherited }}"><a href="{{{href}}}#instance-methods">Methods</a></li>
+    {{#allPublicInstanceMethods}}
+    <li{{ #isInherited }} class="inherited"{{ /isInherited}}>{{{ linkedName }}}</li>
+    {{/allPublicInstanceMethods}}
+    {{/hasPublicMethods}}
+
+    {{#hasPublicOperators}}
+    <li class="section-title{{ #allPublicOperatorsInherited }} inherited{{ /allPublicOperatorsInherited}}"><a href="{{{href}}}#operators">Operators</a></li>
+    {{#allPublicOperators}}
+    <li{{ #isInherited }} class="inherited"{{ /isInherited}}>{{{ linkedName }}}</li>
+    {{/allPublicOperators}}
+    {{/hasPublicOperators}}
+
+    {{#hasPublicStaticProperties}}
+    <li class="section-title"><a href="{{{href}}}#static-properties">Static properties</a></li>
+    {{#publicStaticProperties}}
+    <li>{{{ linkedName }}}</li>
+    {{/publicStaticProperties}}
+    {{/hasPublicStaticProperties}}
+
+    {{#hasPublicStaticMethods}}
+    <li class="section-title"><a href="{{{href}}}#static-methods">Static methods</a></li>
+    {{#publicStaticMethods}}
+    <li>{{{ linkedName }}}</li>
+    {{/publicStaticMethods}}
+    {{/hasPublicStaticMethods}}
+
+    {{#hasPublicConstants}}
+    <li class="section-title"><a href="{{{href}}}#constants">Constants</a></li>
+    {{#publicConstants}}
+    <li>{{{linkedName}}}</li>
+    {{/publicConstants}}
+    {{/hasPublicConstants}}
+    {{/isClass}}
+
+    {{#isExtension}}
+    {{#hasPublicProperties}}
+    <li class="section-title"> <a href="{{{href}}}#instance-properties">Properties</a>
+    </li>
+    {{#allPublicInstanceProperties}}
+    <li>{{{ linkedName }}}</li>
+    {{/allPublicInstanceProperties}}
+    {{/hasPublicProperties}}
+
+    {{#hasPublicMethods}}
+    <li class="section-title"><a href="{{{href}}}#instance-methods">Methods</a></li>
+    {{#allPublicInstanceMethods}}
+    <li>{{{ linkedName }}}</li>
+    {{/allPublicInstanceMethods}}
+    {{/hasPublicMethods}}
+
+    {{#hasPublicOperators}}
+    <li class="section-title"><a href="{{{href}}}#operators">Operators</a></li>
+    {{#allPublicOperators}}
+    <li>{{{ linkedName }}}</li>
+    {{/allPublicOperators}}
+    {{/hasPublicOperators}}
+
+    {{#hasPublicStaticProperties}}
+    <li class="section-title"><a href="{{{href}}}#static-properties">Static properties</a></li>
+    {{#publicStaticProperties}}
+    <li>{{{ linkedName }}}</li>
+    {{/publicStaticProperties}}
+    {{/hasPublicStaticProperties}}
+
+    {{#hasPublicStaticMethods}}
+    <li class="section-title"><a href="{{{href}}}#static-methods">Static methods</a></li>
+    {{#publicStaticMethods}}
+    <li>{{{ linkedName }}}</li>
+    {{/publicStaticMethods}}
+    {{/hasPublicStaticMethods}}
+
+    {{#hasPublicConstants}}
+    <li class="section-title"><a href="{{{href}}}#constants">Constants</a></li>
+    {{#publicConstants}}
+    <li>{{{linkedName}}}</li>
+    {{/publicConstants}}
+    {{/hasPublicConstants}}
+    {{/isExtension}}
+
+    {{/container}}
+</ol>
diff --git a/lib/templates/constant.html b/lib/templates/constant.html
index 44e278b..5248e7d 100644
--- a/lib/templates/constant.html
+++ b/lib/templates/constant.html
@@ -3,7 +3,7 @@
   <div id="dartdoc-sidebar-left" class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
     {{>search_sidebar}}
     <h5>{{parent.name}} {{parent.kind}}</h5>
-    {{>sidebar_for_class}}
+    {{>sidebar_for_container}}
   </div><!--/.sidebar-offcanvas-left-->
 
   <div id="dartdoc-main-content" class="col-xs-12 col-sm-9 col-md-8 main-content">
diff --git a/lib/templates/method.html b/lib/templates/method.html
index 0d1fb44..d88bc73 100644
--- a/lib/templates/method.html
+++ b/lib/templates/method.html
@@ -3,7 +3,7 @@
   <div id="dartdoc-sidebar-left" class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
     {{>search_sidebar}}
     <h5>{{parent.name}} {{parent.kind}}</h5>
-    {{>sidebar_for_class}}
+    {{>sidebar_for_container}}
   </div><!--/.sidebar-offcanvas-->
 
   <div id="dartdoc-main-content" class="col-xs-12 col-sm-9 col-md-8 main-content">
diff --git a/lib/templates/property.html b/lib/templates/property.html
index 8d9bb5e..1372a37 100644
--- a/lib/templates/property.html
+++ b/lib/templates/property.html
@@ -3,7 +3,7 @@
   <div id="dartdoc-sidebar-left" class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
     {{>search_sidebar}}
     <h5>{{parent.name}} {{parent.kind}}</h5>
-    {{>sidebar_for_class}}
+    {{>sidebar_for_container}}
   </div><!--/.sidebar-offcanvas-->
 
   <div id="dartdoc-main-content" class="col-xs-12 col-sm-9 col-md-8 main-content">
diff --git a/test/model_test.dart b/test/model_test.dart
index 10e4364..dbc6257 100644
--- a/test/model_test.dart
+++ b/test/model_test.dart
@@ -2134,6 +2134,13 @@
               'FancyList&lt;<wbr><span class="type-parameter">Z</span>&gt;'));
     });
 
+    test('extended type has generics', () {
+      expect(
+          fancyList.extendedType.nameWithGenerics,
+          equals(
+              'List&lt;<wbr><span class="type-parameter">Z</span>&gt;'));
+    });
+
     test('get methods', () {
       expect(fancyList.allPublicInstanceMethods, hasLength(1));
     });
