diff --git a/apps/amethyst/app/(tabs)/(stamp)/stamp/success.tsx b/apps/amethyst/app/(tabs)/(stamp)/stamp/success.tsx
index 8642b49..8db0236 100644
--- a/apps/amethyst/app/(tabs)/(stamp)/stamp/success.tsx
+++ b/apps/amethyst/app/(tabs)/(stamp)/stamp/success.tsx
@@ -37,7 +37,7 @@ export default function StepThree() {
- Play submitted
+ Play submitted
You can view your play{" "}
{play.trackName}
diff --git a/apps/amethyst/app/(tabs)/:o/music/[artist]/[release]/index.tsx b/apps/amethyst/app/(tabs)/:o/music/[artist]/[release]/index.tsx
index 3ee8eb0..0fbef07 100644
--- a/apps/amethyst/app/(tabs)/:o/music/[artist]/[release]/index.tsx
+++ b/apps/amethyst/app/(tabs)/:o/music/[artist]/[release]/index.tsx
@@ -152,7 +152,7 @@ export default function AlbumDetail() {
Album
{album.name}
diff --git a/apps/amethyst/app/(tabs)/:o/music/[artist]/index.tsx b/apps/amethyst/app/(tabs)/:o/music/[artist]/index.tsx
index 2a4d162..b1f6029 100644
--- a/apps/amethyst/app/(tabs)/:o/music/[artist]/index.tsx
+++ b/apps/amethyst/app/(tabs)/:o/music/[artist]/index.tsx
@@ -93,7 +93,7 @@ export default function ArtistDetail() {
Artist
{artist.name}
diff --git a/apps/amethyst/app/(tabs)/notifications.tsx b/apps/amethyst/app/(tabs)/notifications.tsx
index c4f7050..94cbc02 100644
--- a/apps/amethyst/app/(tabs)/notifications.tsx
+++ b/apps/amethyst/app/(tabs)/notifications.tsx
@@ -18,7 +18,7 @@ export default function Notifications() {
-
+
{status === "loggedIn"
? "Notifications are coming later."
: "You must be signed in to view your notifications."}
diff --git a/apps/amethyst/app/(tabs)/profile/[handle].tsx b/apps/amethyst/app/(tabs)/profile/[handle].tsx
index 8ea314e..296558a 100644
--- a/apps/amethyst/app/(tabs)/profile/[handle].tsx
+++ b/apps/amethyst/app/(tabs)/profile/[handle].tsx
@@ -131,7 +131,7 @@ export default function ProfileScreen() {
)}
-
+
{profile?.displayName || actor}
{profile?.handle && (
diff --git a/apps/amethyst/app/(tabs)/search/index.tsx b/apps/amethyst/app/(tabs)/search/index.tsx
index 60fef7d..31dce45 100644
--- a/apps/amethyst/app/(tabs)/search/index.tsx
+++ b/apps/amethyst/app/(tabs)/search/index.tsx
@@ -355,7 +355,7 @@ export default function Explore() {
{!hasQuery && (
-
+
Find something playing
diff --git a/apps/amethyst/app/_layout.tsx b/apps/amethyst/app/_layout.tsx
index 230a2b5..90ca53e 100644
--- a/apps/amethyst/app/_layout.tsx
+++ b/apps/amethyst/app/_layout.tsx
@@ -62,10 +62,7 @@ SplashScreen.preventAutoHideAsync();
export default function RootLayout() {
const [loaded, error] = useFonts({
- CrimsonPro: require("../assets/fonts/CrimsonPro-VariableFont_wght.ttf"),
- "CrimsonPro Italic": require("../assets/fonts/CrimsonPro-Italic-VariableFont_wght.ttf"),
"DM Sans": require("../assets/fonts/DMSans-VariableFont_opsz,wght.ttf"),
- Fraunces: require("../assets/fonts/Fraunces-VariableFont_SOFT,WONK,opsz,wght.ttf"),
PlexMono: require("../assets/fonts/IBMPlexMono-Regular.ttf"),
...FontAwesome.font,
});
diff --git a/apps/amethyst/app/auth/login.tsx b/apps/amethyst/app/auth/login.tsx
index 57d593c..24bba28 100644
--- a/apps/amethyst/app/auth/login.tsx
+++ b/apps/amethyst/app/auth/login.tsx
@@ -242,7 +242,7 @@ const LoginScreen = () => {
/>
-
+
Sign in to Teal
diff --git a/apps/amethyst/app/auth/logoutModal.tsx b/apps/amethyst/app/auth/logoutModal.tsx
index d6b8bf4..723f654 100644
--- a/apps/amethyst/app/auth/logoutModal.tsx
+++ b/apps/amethyst/app/auth/logoutModal.tsx
@@ -25,7 +25,7 @@ export default function ModalScreen() {
className="absolute right-2 top-2 text-muted-foreground hover:text-foreground"
name="x"
/>
-
+
Sign out of Teal?
diff --git a/apps/amethyst/app/auth/options.tsx b/apps/amethyst/app/auth/options.tsx
index 3261a22..5b03889 100644
--- a/apps/amethyst/app/auth/options.tsx
+++ b/apps/amethyst/app/auth/options.tsx
@@ -16,7 +16,7 @@ export default function AuthOptions() {
}}
/>
-
+
Welcome to Teal
diff --git a/apps/amethyst/app/auth/signup.tsx b/apps/amethyst/app/auth/signup.tsx
index 33a9a4f..71839ac 100644
--- a/apps/amethyst/app/auth/signup.tsx
+++ b/apps/amethyst/app/auth/signup.tsx
@@ -25,7 +25,7 @@ const LoginScreen = () => {
size={24}
/>
-
+
Sign up via the Atmosphere
diff --git a/apps/amethyst/app/onboarding/descriptionPage.tsx b/apps/amethyst/app/onboarding/descriptionPage.tsx
index 2676877..862d8a4 100644
--- a/apps/amethyst/app/onboarding/descriptionPage.tsx
+++ b/apps/amethyst/app/onboarding/descriptionPage.tsx
@@ -29,7 +29,7 @@ const DescriptionPage: React.FC = ({
-
+
Add a liner note.
diff --git a/apps/amethyst/app/onboarding/displayNamePage.tsx b/apps/amethyst/app/onboarding/displayNamePage.tsx
index f03d19d..66b4d37 100644
--- a/apps/amethyst/app/onboarding/displayNamePage.tsx
+++ b/apps/amethyst/app/onboarding/displayNamePage.tsx
@@ -31,7 +31,7 @@ const DisplayNamePage: React.FC = ({
-
+
What should listeners call you?
diff --git a/apps/amethyst/app/onboarding/imageSelectionPage.tsx b/apps/amethyst/app/onboarding/imageSelectionPage.tsx
index bc5ddcd..ce0b7d1 100644
--- a/apps/amethyst/app/onboarding/imageSelectionPage.tsx
+++ b/apps/amethyst/app/onboarding/imageSelectionPage.tsx
@@ -53,7 +53,7 @@ const ImageSelectionPage: React.FC = ({
- Set the artwork.
+ Set the artwork.
Add an avatar and banner, or keep the images from your Bluesky
profile. Both are optional.
diff --git a/apps/amethyst/app/onboarding/index.tsx b/apps/amethyst/app/onboarding/index.tsx
index a858374..3fc56d8 100644
--- a/apps/amethyst/app/onboarding/index.tsx
+++ b/apps/amethyst/app/onboarding/index.tsx
@@ -231,7 +231,7 @@ export default function OnboardingPage() {
-
+
Create your Teal profile
@@ -272,7 +272,7 @@ export default function OnboardingPage() {
-
+
Your Teal profile is ready
@@ -295,7 +295,7 @@ export default function OnboardingPage() {
-
+
{OnboardingSubmissionSteps[submissionStep]}
@@ -351,7 +351,7 @@ export default function OnboardingPage() {
-
+
Make it yours.
diff --git a/apps/amethyst/components/songish/PlayFeedCard.tsx b/apps/amethyst/components/songish/PlayFeedCard.tsx
index fa9f4b8..56d2153 100644
--- a/apps/amethyst/components/songish/PlayFeedCard.tsx
+++ b/apps/amethyst/components/songish/PlayFeedCard.tsx
@@ -6,7 +6,7 @@ import { Icon } from "@/lib/icons/iconWithClassName";
import { coverArtUrl, displayArtists, getBlueskyProfile } from "@/lib/teal/api";
import { musicTrackHref } from "@/lib/teal/routes";
import { cn, timeAgo } from "@/lib/utils";
-import { Disc3, Play } from "lucide-react-native";
+import { Disc3 } from "lucide-react-native";
import type { PlayView } from "@teal/lexicons/src/types/fm/teal/alpha/feed/defs";
@@ -131,7 +131,7 @@ export default function PlayFeedCard({ play, compact }: PlayFeedCardProps) {
-
+
{play.trackName}
-
+
{art ? (
)}
-
-
-
diff --git a/apps/amethyst/components/songish/RightRail.tsx b/apps/amethyst/components/songish/RightRail.tsx
index 52aa992..7b9a946 100644
--- a/apps/amethyst/components/songish/RightRail.tsx
+++ b/apps/amethyst/components/songish/RightRail.tsx
@@ -44,7 +44,7 @@ export default function RightRail() {
Trending now
-
+
Live from the network
diff --git a/apps/amethyst/components/songish/SongishShell.tsx b/apps/amethyst/components/songish/SongishShell.tsx
index c9b6e1e..769b405 100644
--- a/apps/amethyst/components/songish/SongishShell.tsx
+++ b/apps/amethyst/components/songish/SongishShell.tsx
@@ -34,7 +34,7 @@ function RecordLogo() {
- Teal
+ Teal
listening network
@@ -191,7 +191,7 @@ export function SectionHeading({
{eyebrow}
)}
- {title}
+ {title}
{detail && (
@@ -228,7 +228,7 @@ export default function SongishShell({
>
{title && (
-
+
{title}
)}
diff --git a/apps/amethyst/global.css b/apps/amethyst/global.css
index 71aa211..2378857 100644
--- a/apps/amethyst/global.css
+++ b/apps/amethyst/global.css
@@ -4,7 +4,7 @@
@layer base {
:root {
- --base-font-family: "EBGaramond";
+ --base-font-family: "DM Sans";
--background: 48 33% 97%;
--foreground: 174 33% 10%;
--muted: 162 16% 91%;
diff --git a/apps/amethyst/tailwind.config.js b/apps/amethyst/tailwind.config.js
index 2bbf88c..a2327dd 100644
--- a/apps/amethyst/tailwind.config.js
+++ b/apps/amethyst/tailwind.config.js
@@ -1,4 +1,4 @@
-import { hairlineWidth, platformSelect } from "nativewind/theme";
+import { hairlineWidth } from "nativewind/theme";
/** @type {import('tailwindcss').Config} */
export const darkMode = "class";
@@ -8,20 +8,7 @@ export const theme = {
extend: {
fontFamily: {
sans: "DM Sans",
- "serif-old": "CrimsonPro",
- "serif-old-italic": "CrimsonPro Italic",
- serif: "Fraunces",
- // serif: platformSelect({
- // android: "Fraunces",
- // ios: "Fraunces",
- // web: 'Fraunces, Georgia, Cambria, "Times New Roman", Times, serif',
- // }),
mono: "PlexMono",
- // mono: platformSelect({
- // android: "PlexMono",
- // ios: ["PlexMono"],
- // web: 'PlexMono, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
- // }),
},
colors: {
border: "hsl(var(--border))",
diff --git a/todo.md b/todo.md
index 5cda3b8..6341837 100644
--- a/todo.md
+++ b/todo.md
@@ -50,6 +50,7 @@ This file is the working handoff for the Songish-style Teal clone. Keep it updat
## Next: Amethyst UI
- [x] Add Explore search for users, songs, artists, and albums.
+- [ ] Add album-cover preview controls only after Teal has a real audio preview source and playback behavior.
- [ ] Finish profile avatar and banner blob URL rendering.
- [x] Add artist and release detail routes in addition to track detail.
- [x] Refresh the shared UI system and apply it across feed, search, profiles, music pages, sign-in, onboarding, settings, and manual stamping.