Skip to content

Commit bfd4851

Browse files
Add naming conventions table and anchors to guideline blocks
1 parent 52f77b3 commit bfd4851

File tree

3 files changed

+246
-174
lines changed

3 files changed

+246
-174
lines changed

EssentialCSharp.Web/Views/Home/Guidelines.cshtml

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,48 @@
88
<h1>@ViewData["Title"]</h1>
99
<hr class="divider-light-blue" />
1010

11+
<div class="mb-4">
12+
<h2 class="fs-4 heading-wrapper" id="naming-conventions-table">
13+
C# Naming Conventions - Quick Reference Table
14+
<button class="anchor-link" v-on:click="copyToClipboard('naming-conventions-table')" title="Copy direct link">
15+
<i class="fa-solid fa-link"></i>
16+
</button>
17+
</h2>
18+
<div class="table-responsive mb-3">
19+
<table class="table table-bordered table-striped align-middle w-auto">
20+
<thead>
21+
<tr>
22+
<th>Kind</th>
23+
<th>Naming Convention</th>
24+
<th>Example</th>
25+
</tr>
26+
</thead>
27+
<tbody>
28+
<tr><td>Classes</td><td>PascalCase</td><td><code>class Car</code></td></tr>
29+
<tr><td>Types and Namespaces</td><td>PascalCase</td><td><code>namespace VehicleManufacturer;</code></td></tr>
30+
<tr><td>Parameters</td><td>camelCase</td><td><code>public Car(int odometerMileage, string manufacturer)</code></td></tr>
31+
<tr><td>Methods</td><td>PascalCase</td><td><code>public void StartEngine()</code></td></tr>
32+
<tr><td>Properties</td><td>PascalCase</td><td><code>public double FuelLevel { get; set; }</code></td></tr>
33+
<tr><td>Local Variables</td><td>camelCase</td><td><code>int yearManufactured;</code></td></tr>
34+
<tr><td>Local Functions</td><td>PascalCase</td><td><code>string CalculateMilesUntilEmpty(double fuelLevel)</code></td></tr>
35+
<tr><td>Fields</td><td>_PascalCase</td><td><code>private string _Day;</code></td></tr>
36+
<tr><td>Enum Members</td><td>PascalCase</td><td><code>enum Status { Unknown, Operational, Broken, InShop }</code></td></tr>
37+
<tr><td>Type Parameters</td><td>TPascalCase</td><td><code>public TOutput Convert&lt;TInput, TOutput&gt;(TInput from)</code></td></tr>
38+
<tr><td>Interfaces</td><td>IPascalCase</td><td><code>interface ISampleInterface</code></td></tr>
39+
</tbody>
40+
</table>
41+
</div>
42+
</div>
43+
1144
<div>
1245
@foreach (var group in guidelines.GroupBy(g => g.SanitizedSubsection).OrderBy(g => g.Key))
1346
{
14-
<h2 class="fs-4" id="@group.Key?.ToLower()">@group.Key</h2>
47+
<h2 class="fs-4 heading-wrapper" id="@group.Key?.ToLower()">
48+
@group.Key
49+
<button class="anchor-link" v-on:click="copyToClipboard('@group.Key?.ToLower()')">
50+
<i class="fa-solid fa-link"></i>
51+
</button>
52+
</h2>
1553
foreach (var guideline in group)
1654
{
1755
<div>

EssentialCSharp.Web/wwwroot/css/styles.css

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -788,6 +788,28 @@ details > summary::-webkit-details-marker {
788788
border-color: var(--grey-lighten-2) transparent transparent transparent;
789789
}
790790

791+
/* Anchor Styling */
792+
.heading-wrapper:not(:hover) .anchor-link:not(:focus-visible) {
793+
opacity: 0;
794+
}
795+
796+
.anchor-link {
797+
border: none;
798+
color: var(--link-color);
799+
text-decoration: none;
800+
position: absolute;
801+
font-size: 14px;
802+
margin: 4px 2px;
803+
transition-duration: 0.4s;
804+
cursor: pointer;
805+
background-color: transparent;
806+
}
807+
808+
.anchor-link:hover {
809+
color: var(--link-color-hover);
810+
}
811+
812+
791813
/* The snackbar - position it at the bottom and in the middle of the screen */
792814
#snackbar {
793815
visibility: hidden; /* Hidden by default. Visible on click */

0 commit comments

Comments
 (0)