Cook the beets.Trim the beet greens from the beets if attached, leaving a small amount of stem on each beet. Wash the beets well. Place them in a pot, cover with water, and simmer until tender, about 35 to 50 minutes depending on size.
Cool and peel the beets.Drain the cooked beets and let them cool until easy to handle. Rub off the skins with your fingers or a towel. Cut the beets into wedges, slices, or bite-size cubes.
Prepare the greens.Wash the Swiss chard or beet greens well. Separate thick stems from the leaves. Chop the stems into small pieces and roughly chop the leaves.
Cook the onion and stems.Warm the butter or oil in a skillet over medium heat. Add the sliced onion and chopped stems. Cook for 4 to 6 minutes, until the onion softens and the stems become tender.
Wilt the greens.Add the chopped leaves to the skillet and cook for 2 to 4 minutes, stirring often, until just wilted. Season lightly with salt and pepper.
Make the dressing.In a small bowl, whisk together the vinegar, oil, mustard, sugar or honey, salt, pepper, and caraway seeds if using. Add a spoonful of beet cooking liquid or water if you want a slightly softer dressing.
Combine the salad.Place the beets in a large bowl. Add the warm greens and onions. Pour the dressing over the salad and toss gently so the beets and greens are evenly coated.
Let the flavors settle.Let the salad rest for at least 10 minutes before serving. For a chilled version, cover and refrigerate for 1 to 2 hours.
Finish with herbs.Sprinkle with parsley, chives, or dill before serving. Taste and adjust with more vinegar, salt, pepper, or sweetness as needed.