Skip to content

Commit f942e34

Browse files
fix(frontend): UX copy and typography sweep across console UI (#2419)
* fix(frontend): drop "successfully" from toast/status messages Use past-tense verb only per style guide ("Topic created" not "Topic created successfully"). Also removes the exclamation point from "Topic created!" in the create-topic modal. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(frontend): update test assertions for "User created" string change Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(frontend): remove exclamation points from UI strings Per style guide: no ! in product UI text. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(frontend): replace Yes/No button labels with action verbs "Yes" → "Stop reassignment", "No" → "Keep running" in the cancel-reassignment confirmation popover per style guide. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(frontend): capitalize Schema Registry product name consistently Fix lowercase "schema registry" in UI-facing strings and aria-labels. Also fix "schema registry rule" → "Schema Registry rule" in validation messages and ACL resource display names. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(frontend): remove "Please" from UI strings, use direct imperative Per style guide: drop "Please <verb>" at start of strings — use direct imperative. Also updates test assertions that matched changed strings. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(frontend): sweep misc UX copy (via, e.g. in UI strings) Replace "via" with "through"/"using" and "e.g." with "for example" in user-visible strings per style guide. Placeholder text with e.g. left as-is (conventional and concise in that context). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 94449f4 commit f942e34

64 files changed

Lines changed: 105 additions & 114 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

frontend/src/components/license/register-modal.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ export const RegisterModal = ({ isOpen, onClose }: RegisterModalProps) => {
159159
</Box>
160160
<VStack align="center" spacing={2}>
161161
<Text fontSize="lg" fontWeight="bold" textAlign="center">
162-
This cluster has been successfully registered
162+
Cluster registered
163163
</Text>
164164
<Text color="gray.600" textAlign="center">
165165
Enjoy 30 more days of enterprise features.
@@ -256,7 +256,7 @@ export const RegisterModal = ({ isOpen, onClose }: RegisterModalProps) => {
256256
required: 'Email address is required',
257257
pattern: {
258258
value: EMAIL_VALIDATION_REGEX,
259-
message: 'Please enter a valid email address',
259+
message: 'Enter a valid email address',
260260
},
261261
}}
262262
/>

frontend/src/components/misc/connection-error-ui.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,17 @@ function getErrorMessage(error: ConnectError): { title: string; description: str
3131
case Code.DeadlineExceeded:
3232
return {
3333
title: 'Request Timeout',
34-
description: 'The server took too long to respond. Please try again.',
34+
description: 'The server took too long to respond. Try again.',
3535
};
3636
case Code.Internal:
3737
return {
3838
title: 'Internal Server Error',
39-
description: 'An unexpected error occurred on the server. Please try again.',
39+
description: 'An unexpected error occurred on the server. Try again.',
4040
};
4141
default:
4242
return {
4343
title: 'Connection Error',
44-
description: 'Unable to connect to the server. Please check your connection and try again.',
44+
description: 'Unable to connect to the server. Check your connection and try again.',
4545
};
4646
}
4747
}

frontend/src/components/misc/error-boundary.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ const CopyToClipboardButton: FC<{ message: string; disabled: boolean; isLoading:
261261
.then(() => {
262262
toast({
263263
status: 'success',
264-
description: 'All info copied to clipboard!',
264+
description: 'All info copied to clipboard',
265265
});
266266
})
267267
.catch(navigatorClipboardErrorHandler);

frontend/src/components/misc/login.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ const LoginPage = () => {
263263
{{
264264
token_exchange_failed: 'OIDC authentication failed. Check backend logs for details.',
265265
kafka_authentication_failed:
266-
'Authenticated via OIDC, but failed to authenticate with the Kafka API.',
266+
'Authenticated through OIDC, but failed to authenticate with the Kafka API.',
267267
console_internal: 'An unexpected error occurred. Check backend logs.',
268268
permission_denied: `This user is not authorized to use Console. An administrator should grant user ${searchParams.get('oidc_subject') ?? ''} permissions in the Console configuration to proceed.`,
269269
}[searchParams.get('error_code') as string] || 'An unexpected error occurred. Check backend logs.'}

frontend/src/components/misc/no-clipboard-popover.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { isClipboardAvailable } from '../../utils/feature-detection';
1717
const popoverContent = (
1818
<>
1919
<p>Due to browser restrictions, the clipboard is not accessible on unsecure connections.</p>
20-
<p>Please make sure to run Redpanda Console with SSL enabled to use this feature.</p>
20+
<p>Run Redpanda Console with SSL enabled to use this feature.</p>
2121
</>
2222
);
2323

frontend/src/components/misc/user-preferences.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ const ImportExportTab: FC = () => {
245245
} else {
246246
toast({
247247
status: 'success',
248-
description: 'Settings imported successfully',
248+
description: 'Settings imported',
249249
});
250250
}
251251
setImportCode('');
@@ -265,7 +265,7 @@ const ImportExportTab: FC = () => {
265265
.then(() => {
266266
toast({
267267
status: 'success',
268-
description: 'Preferences copied to clipboard!',
268+
description: 'Preferences copied to clipboard',
269269
});
270270
})
271271
.catch(navigatorClipboardErrorHandler);

frontend/src/components/pages/admin/admin-debug-bundle.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ const NewDebugBundleForm: FC<{
467467
/>
468468
</FormField>
469469
<FormField
470-
description="Read the logs until the given size is reached (e.g. 3MB, 1GB). Default 100MB."
470+
description="Read the logs until the given size is reached (for example, 3MB, 1GB). Default 100MB."
471471
errorText={fieldViolationsMap?.logsSizeLimitBytes}
472472
isInvalid={!!fieldViolationsMap?.logsSizeLimitBytes}
473473
label="Logs size limit"

frontend/src/components/pages/admin/upload-license-page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ const UploadLicensePageContent: FC = () => {
149149
</Box>
150150
</Flex>
151151
}
152-
title="License uploaded successfully"
152+
title="License uploaded"
153153
/>
154154
</Box>
155155
) : (

frontend/src/components/pages/agents/ai-agent-model.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,17 +197,17 @@ export const MODEL_OPTIONS_BY_PROVIDER = {
197197
{
198198
value: 'anthropic.claude-sonnet-4-6',
199199
name: 'Claude Sonnet 4.6',
200-
description: 'Fast, intelligent model via Bedrock',
200+
description: 'Fast, intelligent model through Bedrock',
201201
},
202202
{
203203
value: 'anthropic.claude-opus-4-6-v1',
204204
name: 'Claude Opus 4.6',
205-
description: 'Most capable model via Bedrock',
205+
description: 'Most capable model through Bedrock',
206206
},
207207
{
208208
value: 'anthropic.claude-haiku-4-5-20251001-v1:0',
209209
name: 'Claude Haiku 4.5',
210-
description: 'Fast and cost-effective via Bedrock',
210+
description: 'Fast and cost-effective through Bedrock',
211211
},
212212
],
213213
},

frontend/src/components/pages/agents/create/ai-agent-create-page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ export const AIAgentCreatePage = () => {
406406
onError: handleValidationError,
407407
onSuccess: (data) => {
408408
if (data?.aiAgent?.id) {
409-
toast.success('AI agent created successfully');
409+
toast.success('AI agent created');
410410
navigate({ to: `/agents/${data.aiAgent.id}` });
411411
}
412412
},
@@ -606,7 +606,7 @@ export const AIAgentCreatePage = () => {
606606
<FieldLabel htmlFor="serviceAccountName">Service Account Name</FieldLabel>
607607
<Input
608608
id="serviceAccountName"
609-
placeholder="e.g., cluster-abc123-agent-my-agent-sa"
609+
placeholder="cluster-abc123-agent-my-agent-sa"
610610
{...form.register('serviceAccountName')}
611611
aria-describedby={form.formState.errors.serviceAccountName ? 'serviceAccountName-error' : undefined}
612612
aria-invalid={!!form.formState.errors.serviceAccountName}

0 commit comments

Comments
 (0)