feat: admin settings page UI/UX pass with WordPress-native patterns
- Header: h1 + logo in a wrapping flex row, hr.wp-header-end before the tabs, aria-current on the active tab; own CSS/JS enqueued only on this screen. - Verbindung: ordered "So verbindest du Claude" steps, copy button (core clipboard.js + wp.a11y.speak), Site-Health-style status list, German details. - Zugriff: roles as form-table fieldset, connections with site date format, empty-state row, confirm on revoke; ConnectionUsage records last use via WP_Application_Passwords::record_application_password_usage (once a day). - Tools: plain-language legend, counter as inline notice, groups as core postboxes (postbox.js toggles, per-user closed state, summary when closed), fixed column widths with new "Art" column, submit above and below. - Protokoll: site-timezone times with UTC tooltip, result icons, filters with labels in the list table nav, retention link to Limits. - Limits: short labels with units and descriptions; snapshot count hidden but preserved. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,340 @@
|
||||
/* Einstellungen → LIT MCP. Only small additions to WordPress' own admin styles. */
|
||||
|
||||
/* Header: title left, logo right; wraps instead of overlapping on narrow screens. */
|
||||
.lit-mcp-header {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 8px 16px;
|
||||
}
|
||||
|
||||
.lit-mcp-logo {
|
||||
display: block;
|
||||
height: 30px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 782px) {
|
||||
.lit-mcp-logo {
|
||||
height: 22px;
|
||||
}
|
||||
}
|
||||
|
||||
.lit-mcp .nav-tab-wrapper {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
/* Muted secondary text (tool names, client URLs). */
|
||||
.lit-mcp-muted,
|
||||
.lit-mcp-tool-name {
|
||||
color: #646970;
|
||||
font-size: 12px;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
.lit-mcp-tool-name {
|
||||
font-family: Consolas, Monaco, monospace;
|
||||
}
|
||||
|
||||
/* Tab "Verbindung". */
|
||||
.lit-mcp-steps {
|
||||
max-width: 50rem;
|
||||
}
|
||||
|
||||
.lit-mcp-steps li {
|
||||
margin-bottom: 0.75em;
|
||||
}
|
||||
|
||||
.lit-mcp-copy-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 6px 8px;
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.lit-mcp-copy-row input.large-text {
|
||||
flex: 1 1 22rem;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.lit-mcp-copy-row .success {
|
||||
color: #007017;
|
||||
}
|
||||
|
||||
.lit-mcp-status {
|
||||
margin: 0 0 1em;
|
||||
}
|
||||
|
||||
.lit-mcp-status li {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
flex-wrap: wrap;
|
||||
gap: 0 6px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.lit-mcp-status .dashicons {
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.lit-mcp-status-detail {
|
||||
color: #50575e;
|
||||
}
|
||||
|
||||
.lit-mcp-status-yes-alt .dashicons,
|
||||
.lit-mcp-result-yes-alt .dashicons {
|
||||
color: #00a32a;
|
||||
}
|
||||
|
||||
.lit-mcp-status-warning .dashicons,
|
||||
.lit-mcp-result-warning .dashicons {
|
||||
color: #dba617;
|
||||
}
|
||||
|
||||
.lit-mcp-status-dismiss .dashicons,
|
||||
.lit-mcp-result-dismiss .dashicons {
|
||||
color: #d63638;
|
||||
}
|
||||
|
||||
/* Tab "Zugriff". */
|
||||
.lit-mcp-connections + .description {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.lit-mcp-connections .column-actions {
|
||||
width: 8em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 782px) {
|
||||
.lit-mcp-connections .column-created {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.lit-mcp-connections .column-actions {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.lit-mcp-copy-row input.large-text {
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tab "Tools": legend, collapsible groups (WordPress postboxes) with aligned columns. */
|
||||
.lit-mcp-legend {
|
||||
display: grid;
|
||||
grid-template-columns: max-content 1fr;
|
||||
gap: 2px 12px;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.lit-mcp-legend dt {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.lit-mcp-legend dd {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.lit-mcp-groups .postbox-header {
|
||||
flex-wrap: wrap;
|
||||
gap: 0 12px;
|
||||
padding-left: 12px;
|
||||
}
|
||||
|
||||
.lit-mcp-groups .postbox .hndle {
|
||||
cursor: pointer;
|
||||
justify-content: flex-start;
|
||||
gap: 6px;
|
||||
padding: 8px 0;
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.lit-mcp-groups .hndle .count {
|
||||
color: #646970;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.lit-mcp-group-summary {
|
||||
color: #646970;
|
||||
font-size: 13px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.lit-mcp-group-summary::before {
|
||||
content: "– ";
|
||||
}
|
||||
|
||||
.lit-mcp-groups .postbox:not(.closed) .lit-mcp-group-summary {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.lit-mcp-group-controls {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 4px 16px;
|
||||
padding: 6px 0;
|
||||
}
|
||||
|
||||
.lit-mcp-group-controls .description {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.lit-mcp-groups .handle-actions {
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
/* Same arrow indicator as WordPress' own meta boxes (core scopes it to .meta-box-sortables). */
|
||||
.lit-mcp-groups .postbox .toggle-indicator::before {
|
||||
content: "\f142";
|
||||
content: "\f142" / '';
|
||||
display: inline-block;
|
||||
font: normal 20px/1 dashicons;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.lit-mcp-groups .postbox.closed .toggle-indicator::before {
|
||||
content: "\f140";
|
||||
content: "\f140" / '';
|
||||
}
|
||||
|
||||
.lit-mcp-groups .postbox .inside {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table {
|
||||
table-layout: fixed;
|
||||
border: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table .column-tool {
|
||||
width: 55%;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table .column-kind {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table .column-mode {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table select {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table .description {
|
||||
margin: 4px 0 0;
|
||||
}
|
||||
|
||||
.lit-mcp-kind {
|
||||
color: #50575e;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.lit-mcp-kind .dashicons {
|
||||
font-size: 16px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
vertical-align: text-bottom;
|
||||
color: #787c82;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 782px) {
|
||||
.lit-mcp-group-controls {
|
||||
order: 3;
|
||||
flex-basis: 100%;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table .column-tool {
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table .column-kind {
|
||||
width: 12%;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table .column-mode {
|
||||
width: 43%;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table th,
|
||||
.lit-mcp-tools-table td {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
/* Icon only on phones; the word stays for screen readers (and as tooltip-free fallback). */
|
||||
.lit-mcp-kind-text {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
clip-path: inset(50%);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.lit-mcp-tools-table select {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
padding-right: 20px;
|
||||
background-position: right 2px top 55%;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tab "Protokoll". */
|
||||
.lit-mcp .wp-list-table .column-created_at {
|
||||
width: 10em;
|
||||
}
|
||||
|
||||
.lit-mcp .wp-list-table .column-user,
|
||||
.lit-mcp .wp-list-table .column-client {
|
||||
width: 8em;
|
||||
}
|
||||
|
||||
.lit-mcp .wp-list-table .column-ability,
|
||||
.lit-mcp .wp-list-table .column-object {
|
||||
width: 11em;
|
||||
}
|
||||
|
||||
.lit-mcp .wp-list-table .column-revision,
|
||||
.lit-mcp .wp-list-table .column-result {
|
||||
width: 8em;
|
||||
}
|
||||
|
||||
.lit-mcp .wp-list-table .lit-mcp-partial {
|
||||
background: #fcf9e8;
|
||||
}
|
||||
|
||||
.lit-mcp-result .dashicons {
|
||||
font-size: 18px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
.lit-mcp .tablenav .actions select,
|
||||
.lit-mcp .tablenav .actions input[type="date"] {
|
||||
float: left;
|
||||
margin-right: 6px;
|
||||
max-width: 12.5rem;
|
||||
}
|
||||
|
||||
/* Tab "Limits". */
|
||||
.lit-mcp-unit {
|
||||
margin-left: 4px;
|
||||
}
|
||||
Reference in New Issue
Block a user