We sadly live in the age of snowflakes, where no matter what you write and how, someone somewhere will feel offended by it.
That doesn't mean you should stop caring. But you should realize that a lot of good literature is offensive, sometimes intentionally.
The questions to ask, IMHO, are:
- Are you trying to be offensive or not? If yes, is it for a good enough reason?
- Is this going to offend the majority of people, or just some overly sensitive ones?
- Is there an equally good but less offensive way to write the same thing?
- Who are you offending and how? Making worrying about eye colors is not on the same level as making slavery jokes about black people.
If you've made an effort to ask yourself such questions, made sure you aren't simply being rude, but that whatever is offensive in your story either serve a literary purpose or is clearly in the eye of the beholder, you've done all you reasonably can and should, and whoever still feels offended by what you write - well, it's a free country, they have the option to simply not read it.
for your specific questions:
If thinking of herself as ugly is a part of the story, then you have to pick something the MC feels ugly about, right? You can't just say "ugly" and leave everything to the imagination. That works for background characters, but not for protagonists. You didn't pick a skin disease or whatever, so I don't think there's any better ways of picking something.
If the mom being black is part of the story, if other plots depend on it, then the fact the MC doesn't like her isn't in itself offensive. Why would it? We can't write every black person in every story as a likeable, perfect human being. There are good and bad and likeable and not people everywhere. Especially black people probably know a bunch of assholes around them who also happen to be black. As long as you don't fall into stereotypes such as EVERY black person in your story being a bad person and every white person being a good person, you should be fine.