Is there a CSS class or a different hook I need to use to make my custom perspective component respect the session theme?
CSS is CSS; either you're affected by a selector or you aren't. You can choose to use our named colors in your code, which will help a lot, but full in-depth support just isn't really possible, because a builtin theme file won't be aware of your module. You could potentially get things to work by returning the right class names to be affected by builtin selectors?
Yup ok, are the perspective themes in NPM or in an Inductive repo anywhere? I'd like to import them into my project and to use my IDE's auto-complete.
Not published anywhere for automatic consumption, no. They're assembled as part of our build process directly into the Perspective module. You could manually extract them from the jar for whatever version of Ignition your module is targeting; making your module work across different Perspective module versions could get tricky, depending heavily on exactly what you're trying to do.